Maven:在包期间执行antrun任务
我需要使用Maven antrun插件将Hibernate字节码检测添加到我的一个Java类中,以便启用单个字段的延迟加载。 但是,我无法在构建周期中获取插件。
如何在编译之后但在mvn package
构建期间mvn package
之前,如何指示Maven执行antrun插件?
当前的pom.xml(片段):
... maven-antrun-plugin 1.7 false default-cli process-classes run org.hibernate hibernate-core ${hibernate.version} org.javassist javassist ${javassist.version} org.slf4j slf4j-simple ${org.slf4j-version} ...
我看到的有关此问题的所有文档都显示插件被配置为在“进程类”阶段运行。 但是,从Maven 文档来看,“进程类”阶段似乎不是package
的构建周期的package
。 我可以使用mvn antrun:run
自己运行插件,但是因为最后我需要做mvn package
来生成一个.war文件进行部署,我相当肯定这个插件需要在包中的某个地方执行命令将修改后的类放入打包的.war中。
我已经尝试了上述代码的许多变体(更改阶段,更改,更新插件的版本,更改ID等),没有可感知的更改。 我一直用-e -X
运行mvn
来显示所有可能的输出,并且无论我尝试什么,都不会执行antrun插件。 任何帮助将不胜感激。
显然,问题在于你的antrun
插件配置位于pluginManagement
部分而不是plugins
部分。 您可以在我的答案中看到这两个部分之间的区别。
要使其工作,您应该将其移动到pom.xml的
部分。