1

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

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

有没有办法在不编辑 mojo 的情况下将构建工件传递给同一个 pom 中的插件?

4

2 回答 2

2

必须猜测没有实际插件配置的问题是什么。但一般来说,如果您需要为某些插件添加依赖项(或类),则必须将该类包装到它自己的工件中,即将它移动到一个单独的项目中。

从根本上说,Maven 在进入构建周期的其余部分之前会进行插件依赖解析,因此此时您的类可能尚未编译。

于 2012-05-31T19:10:39.893 回答
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>
于 2012-05-31T19:12:05.157 回答