2010-06-14 67 views
9

我有一個使用Apache Xmlbeans進行數據綁定的項目。目前它非常簡單,它在src/main/xsdconfig中的src/main/xsd和xsdconfig中只有一些Schema-Files。如何將xmlbeans生成的代碼自動包含到maven jar中?

我想將生成的類包含到生成的jar文件中。 「MVN的xmlbeans:XMLBeans的包」如果我指定XMLBeans的目標,它的工作原理 - >創建具有XMLBeans類

一個Jar但我想正常的建造週期內做到這一點:「MVN套裝」 - >應該用xmlbeans類創建一個jar,但不會。

POM的是以下幾點:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>org.test</groupId> 
    <artifactId>xmlbeans-maven-test</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <build> 
    <pluginManagement> 
    <plugins> 
    <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>maven-xmlbeans-plugin</artifactId> 
      <version>2.3.3</version> 
    </plugin> 
    </plugins> 
    </pluginManagement> 
    </build> 


    <dependencies> 
    <dependency> 
     <groupId>org.apache.xmlbeans</groupId> 
     <artifactId>xmlbeans</artifactId> 
     <version>2.4.0</version> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 
</project> 

我試圖手動將其綁定到「生成來源」(而到了「編譯」階段,太)階段,但它不工作。

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>de.leradon</groupId> 
    <artifactId>xmlbeans-maven</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <build> 
    <pluginManagement> 
    <plugins> 
    <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>maven-xmlbeans-plugin</artifactId> 
      <version>2.3.3</version> 
      <executions> 
      <execution> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>xmlbeans</goal> 
       </goals> 
      </execution> 
      </executions> 
    </plugin> 

    </plugins> 
    </pluginManagement> 
    </build> 


    <dependencies> 
    <dependency> 
     <groupId>org.apache.xmlbeans</groupId> 
     <artifactId>xmlbeans</artifactId> 
     <version>2.4.0</version> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 
</project> 

如何配置插件,以便當我運行「mvn package」時,所有生成的類都打包到jar中?

問候, lerad

回答

10

如果配置插件pluginManagement下,你仍然需要聲明它plugins下。爲了簡化,我沒有使用下面的pom.xml中pluginManagement

<project> 
    ... 
    <dependencies> 
    ... 
    <dependency> 
     <groupId>org.apache.xmlbeans</groupId> 
     <artifactId>xmlbeans</artifactId> 
     <version>2.4.0</version> 
     <scope>compile</scope> 
    </dependency> 
    </dependencies> 
    <build> 
    <plugins> 
     ... 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>xmlbeans-maven-plugin</artifactId> 
     <version>2.3.3</version> 
     <executions> 
      <execution> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>xmlbeans</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

有了這個POM(和src/main/xsd一些XSD這是默認的位置),運行mvn clean package只是工作(即來源是從產生XSD,作爲構建的一部分進行編譯和打包)。

-4

試試這個。

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>xmlbeans-maven-plugin</artifactId> 
    <version>2.3.2</version> 
    <executions> 
     <execution> 
      <id /> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>xmlbeans</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <schemaDirectory>src/main/xsd</schemaDirectory> 
     <staleFile>${project.build.directory}/generated-sources/xmlbeans/.staleFlag</staleFile> 
     <verbose>false</verbose> 
     <quiet>false</quiet> 
     <javaSource>1.6</javaSource>      
    </configuration> 
</plugin> 
+2

帶有示例代碼的答案應該始終包括爲什麼代碼在原始海報沒有發揮作用的原因。 – Frans 2012-09-06 12:09:56

相關問題