2012-06-07 38 views
21

我有一個使用wsgen從編譯的java類生成xsd文件的maven項目。
問題是我想將生成的xsd文件添加到jar作爲資源。
由於資源階段在「進程類」階段之前運行,我無法添加它們。
在「process-classes」階段之後是否有添加額外資源的方法?maven:如何添加編譯階段後生成的資源

回答

33

我建議將XSD文件的輸出目錄定義到目標/類中(可能有一個補充子文件夾,它將在封裝階段後期打包到jar中,這可以通過使用maven-resources-plugin來實現。

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-resources-plugin</artifactId> 
     <version>3.0.2</version> 
     <executions> 
      <execution> 
      <id>copy-resources</id> 
      <phase>process-classes</phase> 
      <goals> 
       <goal>copy-resources</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${project.build.outputDirectory}</outputDirectory> 
       <resources>   
       <resource> 
        <directory>${basedir}/target/xsd-out</directory> 
        <filtering>false</filtering> 
       </resource> 
       </resources>    
      </configuration>    
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    ... 
    </build> 
    ... 
</project> 

您需要照顧的資源插件定位是用來調用WSGEN部分插件後,你還可以使用準備包階段,而不是以確保資源將被正確包裝。

+0

工作就像一個魅力!謝謝你lot –

+0

以及如何指定要掃描的軟件包?不是所有的包 – Youssef

+0

這隻有在我將'configuration'從'execution'移動到'plugin'後才起作用。 Maven xsd允許這兩個,但這個插件似乎不是 –