多模块pom中插件依赖jar的问题

时间:2010-06-25 07:25:02

标签: maven-2

有一个顶级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时,它运行正常,但是从顶级目录运行它会失败。

任何帮助,我在缺少什么?

1 个答案:

答案 0 :(得分:0)

这是Maven 2.x的限制/错误,其中所有的执行都是 多模块项目中的插件具有相同的类路径。它已被修复 在Maven 3中(因为其中一个alphas)。