有一个顶级pom.xml,它调用两个子模块,如下所示:
<modules>
<module>module1</module>
<module>module2</module>
</modules>
其中module2依赖于module1
module1 pom.xml中的xjc插件配置如下:
<build>
<plugins>
<plugin>
<groupId>com.sun.tools.xjc.maven2</groupId>
<artifactId>maven-jaxb-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<strict>false</strict>
<extension>true</extension>
<verbose>true</verbose>
</configuration>
</plugin>
</plugins>
</build>
module2的pom.xml中的xjc配置如下:
<build>
<plugins>
<plugin>
<groupId>com.sun.tools.xjc.maven2</groupId>
<artifactId>maven-jaxb-plugin</artifactId>
<dependencies>
<dependency>
<groupId>com.mycompany.module1</groupId>
<artifactId>module1</artifactId>
<version>1.0</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSchemas>
<includeSchema>schema.xsd</includeSchema>
</includeSchemas>
<includeBindings>
<includeBinding>bindings.xjb</includeBinding>
</includeBindings>
<strict>false</strict>
<extension>true</extension>
<verbose>true</verbose>
<args>-Xpdm</args>
</configuration>
</plugin>
</plugins>
</build>
现在当我从顶级目录运行mvn然后module2构建失败时,我收到以下错误:
[INFO] unrecognized parameter -Xpdm
[INFO] ------------------------------------------------------------------------
[INFO] Trace
unrecognized parameter -Xpdm
at com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:446)
at com.sun.tools.xjc.XJC2Task.doXJC(XJC2Task.java:434)
出现此错误的原因是因为在module2构建期间执行XJC插件时未使用module1依赖项。
我的问题:为什么module2的xjc插件配置没有生效?
当我在module2目录中运行mvn时,它运行正常,但是从顶级目录运行它会失败。
任何帮助,我在缺少什么?
答案 0 :(得分:0)
这是Maven 2.x的限制/错误,其中所有的执行都是 多模块项目中的插件具有相同的类路径。它已被修复 在Maven 3中(因为其中一个alphas)。