2016-08-21 60 views
2

我有一個Maven multimodule項目,然後我想將其中一個模塊的源代碼打包成jar,並將其添加到war中(相同模塊或另一個) INF/lib路徑。如何在Maven build war中包含jar源代碼

於是,我試圖使用Maven源插件,像這樣:

<plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-source-plugin</artifactId> 
     <version>3.0.1</version> 
    <configuration>  
     <attach>true</attach> 
    </configuration> 
     <executions> 
      <execution> 
      <id>attach-sources</id> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 

然後將其添加爲正常的依賴,就像這樣:

<dependency> 
    <groupId>myModuleName</groupId> 
    <artifactId>myArtifactName</artifactId> 
    <version>1.0</version> 
</dependency> 

問題是,當我運行用簡單的命令行建立

MVN全新安裝

我有錯誤信息,他無法找到我的工件與源代碼。看起來Maven首先查找依賴關係,然後再構建它。

如何正確配置它?

+0

你想直接在lib文件夾中添加類?這不是傳統。 – davidxxx

+0

我想打包jar中的類並將其附加到WEB-INF/lib文件夾內的war中。我有一些理由要這樣做。 – Andrew

+0

您的需求是傳統的。它應該沒有額外的任務。 你可以顯示你的戰爭的pom.xml,模塊的pom父和所有的堆棧跟蹤嗎? – davidxxx

回答

0

將源文件打包成war文件沒有任何意義。如果你只需要在一個模塊中使用maven-source-plugin,那麼目標jar-no-fork更好...

此外,如果你喜歡將war模塊中的類作爲lib中的jar文件文件夾中的簡單的方法是使用maven-戰爭插件的配置:

<configuration> 
    <attachClasses>true</attachClasses> 
    <archiveClasses>true</archiveClasses> 
</configuration> 

這將導致src/main/java創建一個jar文件出來之類的。

相關問題