tomcat - 尝试在 Gradle 中使用 Tomcat Ant 任务

标签 tomcat gradle ant

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

相关文章:

java - 将spring boot mvc部署到远程tomcat 7

tomcat - Apache tomcat 8 强制 TLD 元素 tlib-version 在 TLD 中缺失或为空

jsf - BLOB 图像仅在通过 p :dataTable is made in PrimeFaces 更新后刷新页面时显示

android - 使用另一个包名称生成 android 项目副本的脚本

tomcat - tomcat 7 中的 virtualhost 只采用 defaulthost

android - 如何测试依赖于Android插件的本地Gradle插件?

java - 输入的值为空:流输出文件夹为空

android - 构建我的Android项目时无法合并dex错误

windows - 如何使用 Windows 设置 ANT_HOME?

java - 为什么在通过 ANT 运行时我的文件无法正确读取