尝试在 Gradle 中使用 Tomcat Ant 任务

Trying to use Tomcat Ant task in Gradle

我正在从 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

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

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