通过maven-antrun-plugin使用antcontrib 任务
我的maven java项目使用maven-antrun-plugin来执行部署我的应用程序的deploy.xml ant脚本。 deploy.xml使用任务,这似乎导致了问题;
[INFO]执行任务
[taskdef]无法从资源net / sf / antcontrib / antlib.xml加载定义。 它无法找到。部署:
[INFO] ———————————————– ————————-
[ERROR] BUILD ERROR
[INFO] ———————————————– ————————-
[INFO]发生了Ant BuildException:执行此行时发生以下错误:
E:\ My_Workspace \ xxxxxx \ xxxxxx \ xxxxxxx \ deploy.xml:24:问题:无法创建任务或输入if
原因:名称未定义。
行动:检查拼写。
操作:检查是否已声明任何自定义任务/类型。
操作:检查是否已发生任何 / 声明。
这是我的pom的antrun插件配置;
false org.apache.maven.plugins maven-antrun-plugin remote-deploy install run ant-contrib ant-contrib 1.0b3 org.apache.ant ant 1.7.1 org.apache.ant ant-jsch 1.7.1
..这是我的deploy.xml中的相关部分;
为什么我查看我的maven repo我可以看到ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar
当我查看jar时我可以看到net/sf/antcontrib/antcontrib.properties
所以没有问题在那里。
当我检查maven.compile.classpath
, maven.compile.classpath
和maven.compile.classpath
的值时,我看不到对antcontrib
任何引用,这可能是问题吗? 当antcontrib
被定义为依赖时,它们为什么不出现?
我认为为了运行maven插件而将ant添加到编译类路径中并不是一个好主意。
我使用Maven 3.0.4并通过为ant-contrib标记指定名称空间来工作,例如:
Letter @{letter}
我的maven-antrun-plugin
依赖项:
ant-contrib ant-contrib 1.0b3 ant ant org.apache.ant ant-nodeps 1.8.1
好的,我已经解决了。
将依赖项移出
标记并将其与其他项目依赖项放在一起似乎已经成功了。
我发现你需要在插件中包含ant-contrib依赖项,这将使taskdef标记能够找到antcontrib.properties
org.apache.maven.plugins maven-antrun-plugin ant-contrib ant-contrib 20020829 copy-and-rename-template-files prepare-package run src/main/resources/docker/templates does not exist, skipping processing docker templates
另一种解决方案是:将ant-contrib-1.0b3.jar保存到路径中,然后像这样定义它
然后
我在这里放了完整的代码示例,您可以下载https://www.surasint.com/run-ant-with-if-from-maven/