我有一个自定义工厂实现,我想通过字符串参数提供给wro4j maven插件。麻烦是工厂与插件在同一个项目中构建,因此插件不会从构建中传递输出,我得到一个很好的ClassNotFoundException。
我知道有一个注释我可以附加到wro4j mojo以使其知道构建输出,但这需要修补并从源代码构建wro4j听起来不聪明。我也不热衷于创建一个完整的不同工件,只是为了包含我的5线工厂实现。感觉应该有一个更简单的方法,所以问题是
有没有办法将构建工件传递到同一个pom中的插件而不编辑mojo?
答案 0 :(得分:2)
如果没有实际的插件配置,必须猜测问题是什么。但通常,如果您需要为某些插件添加依赖项(或类),则必须将该类包装到其自己的工件中,即将其移动到单独的项目中。
从根本上说,Maven在构建周期的其余部分开始之前会执行插件依赖项解析,因此您的类可能尚未在此时编译。
答案 1 :(得分:1)
在编译工厂类时,尝试指示wro4j插件在process-classes
阶段而不是compile
阶段执行(process-classes
发生在compile
之后):
<plugin>
<groupId>ro.isdc.wro4j</groupId>
<artifactId>wro4j-maven-plugin</artifactId>
<version>${wro4j.version}</version>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<configuration>
<wroManagerFactory>...</wroManagerFactory>
</configuration>
</plugin>