我正在从 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")
关于tomcat - 尝试在 Gradle 中使用 Tomcat Ant 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58885982/