尝试在Gradle中使用Tomcat Ant任务

问题描述 投票:0回答:1

我正在从Ant迁移到Gradle的过程中。我似乎找不到更好的方法来管理Grade中的tomcat部署,因此我试图在Gradle中使用Tomcat Ant任务,但无法正常工作。

这是我在Ant可以正常工作的地方

 <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/>

 <target name="deploy" description="Install web application"
      depends="dist">
    <deploy url="${url}" username="${username}" password="${password}"
        path="/${contextName}" war="${DIST}/${contextName}.war"/>
 </target>

所以在Gradle中,我正在尝试像这样使用Ant任务

ant.taskdef(name:"deploy", classname:"org.apache.catalina.ant.DeployTask", 
    classpath: "PATH_TO_catalina-ant.jar")

ant.deploy(url="http://localhost:8080/manager/text" username="user" password="pass"
        path="/app" war="dist/app.war")

当我使用--debug标志运行任务时,我可以看到任务正在从JAR中加载属性

 Class org.apache.catalina.ant.DeployTask loaded from ant loader (parentFirst)

但是我收到此错误消息

 Could not set unknown property 'war' for task ':deploy' of type org.gradle.api.DefaultTask.

WAR绝对是此任务的属性,但是错误消息将其称为DefaultTask的事实使我认为taskdef的设置不正确,但我不确定。实际上,什么都没有用,因为如果我删除“ war”,那么它只会抱怨我定义的下一个属性。

我正在使用Gradle 3.5

tomcat gradle ant
1个回答
0
投票

您需要用逗号分隔任务属性。您是通过taskdef任务完成此操作的,但在deploy任务中缺少了它们。

ant.deploy(url="http://localhost:8080/manager/text", username:"user", password:"pass", path:"/app", war:"dist/app.war")
© www.soinside.com 2019 - 2024. All rights reserved.