通过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.classpathmaven.compile.classpathmaven.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/

Interesting Posts