2015-03-02 200 views
0

我剛剛在幾個小時前遇到了問題,而且它似乎一直工作到現在。maven無法找到生成的源代碼(mvn clean install)

我產生以下方式在我的POM代碼:

<plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>jaxws-maven-plugin</artifactId> 

      <configuration> 
       <sourceDestDir>${basedir}/target/generated/java</sourceDestDir> 
       <keep>true</keep> 
       <verbose>true</verbose> 
       <extension>true</extension> 
       <wsdlDirectory>${basedir}/src/main/resources/META-INF</wsdlDirectory> 
      </configuration> 

      <executions> 
       <execution> 
        <id>ecad-ws</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>wsimport</goal> 
        </goals> 
        <configuration> 
         <wsdlFiles> 
          <wsdlFile>wsdl/ECadDocumentServiceWSDL.wsdl</wsdlFile> 
         </wsdlFiles> 
         <staleFile>${project.build.directory}/jaxws/stale/wsdl.ECadDocumentServiceWSDL.done</staleFile> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>jaxb2-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>xjc</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <schemaDirectory>${basedir}/src/main/resources/META-INF/xsd</schemaDirectory> 
        <packageName>be.fgov.health.ecad.xmlstructure</packageName> 
       <outputDirectory>${basedir}/target/generated/java</outputDirectory> 
      </configuration> 
     </plugin> 

,我在我的項目中使用這些生成的類。 如果我然後做一個「右鍵單擊 - > maven - >乾淨」+「右鍵單擊 - > maven - >安裝」一切正常。 但是,當我運行mvn clean install -DskipTest = true時,maven找不到生成的源代碼..我已經停留了幾個小時,並且無法真正找到它。 (在Eclipse順便說一句這樣做)

編輯:

只是想出了以下內容:如果我刪除第二插件(由XSD生成),我不會得到任何錯誤。如果我把所有的代碼在註釋ofc中使用thoes生成的類。

另一個編輯:

我從JAXB一代改變了輸出目錄,現在它的工作。任何人都可以解釋爲什麼它不能與wsimport位置相同嗎?

+0

嘗試與-Dmaven.test.skip =真 – 2015-03-02 16:04:06

+0

這是完全一樣的OFC做:) – GregD 2015-03-02 16:04:38

+0

@GregD它不正是* *相同:-DskipTests是surefire的特性,而-Dmaven.test.skip是itsel的一個特性,但它們的行爲方式類似。 – Alexander 2015-03-02 16:32:58

回答

1

默認情況下,jaxb2-maven-plugin在將生成的類放入之前刪除outputDirectory

您可以使用屬性clearOutputDir控制此行爲。然後,您的插件配置會是什麼樣子:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>jaxb2-maven-plugin</artifactId> 
    <executions> 
     <execution> 
      <goals> 
       <goal>xjc</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <schemaDirectory>${basedir}/src/main/resources/META-INF/xsd</schemaDirectory> 
     <packageName>be.fgov.health.ecad.xmlstructure</packageName> 
     <outputDirectory>${basedir}/target/generated/java</outputDirectory> 
     <clearOutputDir>false</clearOutputDir> 
    </configuration> 
</plugin> 
相關問題