Проблем в буркана за зависимост на плъгина в многомодулен pom

Има pom.xml от най-високо ниво, който извиква два подмодула, както е показано по-долу:

<modules>
        <module>module1</module>
        <module>module2</module>        
</modules>

Където модул2 зависи от модул1

Конфигурацията на плъгина xjc в module1 pom.xml е както следва:

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

Конфигурацията на xjc в pom.xml на module2 е следната:

      <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)

Причината за тази грешка е, че зависимостта module1 не е била използвана при изпълнението на XJC плъгин по време на изграждането на module2.

Въпросът ми: защо конфигурацията на плъгина xjc на module2 не влезе в сила?

Когато стартирам mvn в директория module2, той работи добре, но от директория от най-високо ниво не успява.

Някаква помощ, какво пропускам?


person Sachin    schedule 25.06.2010    source източник
comment
Моля, публикувайте съобщението за грешка и POM.   -  person SingleShot    schedule 25.06.2010


Отговори (1)


Това е ограничение/бъг на Maven 2.x, където всички изпълнения на плъгин в многомодулен проект имат една и съща класова пътека. Поправено е в Maven 3 (от една от алфа версиите).

person Sachin    schedule 27.06.2010