我正在从Ant迁移到Gradle。我似乎找不到更好的方法来管理Grade中的tomcat部署,所以我试图在Gradle中使用TomcatAnt任务,但我无法实现。
以下是我在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
设置不正确,但我不确定。事实上,什么都不起作用,因为如果我去掉"战争",它只会对我定义的下一个属性发出同样的抱怨。
我正在使用Gradle 3.5
您需要用逗号分隔任务属性。您对taskdef
任务执行了此操作,但在deploy
任务中缺少它们。
ant.deploy(url="http://localhost:8080/manager/text", username:"user", password:"pass", path:"/app", war:"dist/app.war")