2017-04-06 107 views
1

我正在使用項目內庫依賴項解決方案在我的Maven項目中包含第三方jar作爲依賴項。我遵循this blog的說明。Maven包內部jar項目庫依賴關係

現在,我希望當我將我的Maven項目打包到jar中時,創建的jar應該有一個lib文件夾和第三方的jar文件夾。但是,我不希望將其他依賴項打包在jar中。 (我不想要一個包含所有依賴關係的胖jar包,我只想要一個包含其中的第三方依賴關係jar的jar)。

我一直在嘗試使用maven-dependency-plugin和maven-jar-plugin,但是我一直無法實現我想要的。

有人可以幫我嗎?

回答

0

看看Maven Assembly Plugin。它可以過濾包含dependencie,所以你可以選擇什麼樣的DEP在裝配包括

0

您可以使用maven-dependency-plugin(看here),如下圖所示,這個插件會提供很多的選擇,包括罐其中的artifactId(即<includeArtifactIds>)或的groupId(<includeGroupIds>),等等

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
     <executions> 
     <execution> 
      <id>copy-dependencies</id> 
      <phase>prepare-package</phase> 
       <goals> 
        <goal>copy-dependencies</goal> 
       </goals> 
       <configuration> 
      <outputDirectory>${project.build.directory}/ 
          classes/lib</outputDirectory> 
       <overWriteReleases>false</overWriteReleases> 
       <overWriteSnapshots>false</overWriteSnapshots> 
       <overWriteIfNewer>true</overWriteIfNewer> 
       <includeArtifactIds>YOUR_THIRDPARTY_JAR_NAME</includeArtifactIds> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 

所以,上面的代碼將添加到YOUR_THIRDPARTY_JAR_NAME.jar最終.jar文件的文件夾lib