提供maven构建输出作为插件依赖项

时间:2012-05-31 18:42:37

标签: maven maven-plugin

我有一个自定义工厂实现,我想通过字符串参数提供给wro4j maven插件。麻烦是工厂与插件在同一个项目中构建,因此插件不会从构建中传递输出,我得到一个很好的ClassNotFoundException。

我知道有一个注释我可以附加到wro4j mojo以使其知道构建输出,但这需要修补并从源代码构建wro4j听起来不聪明。我也不热衷于创建一个完整的不同工件,只是为了包含我的5线工厂实现。感觉应该有一个更简单的方法,所以问题是

有没有办法将构建工件传递到同一个pom中的插件而不编辑mojo?

2 个答案:

答案 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>