2017-08-10 96 views
0

我有以下項目結構lib下項目2傳遞依賴如何排除。 - Maven的

項目2(下lib

- Maven dependencies (JARs) 
- project 1 JAR (it has JARs in lib) 
    - Maven dependencies of project 1 (JARs) 

我想排除在項目1中的所有的JAR,同時準備項目2

我目前使用下面的在我的POM(包括項目1和項目2)

<plugins> 
    <plugin> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-maven-plugin</artifactId> 
    </plugin> 
</plugins> 

構建項目1時,我希望將它構建爲帶有lib的可執行JAR。

但是,當構建項目2時,我希望項目1僅作爲編譯的JAR(僅包含類文件而不包含lib(JAR))。

項目1包含在項目2中作爲正常依賴項。任何人都可以幫我嗎?

回答

0

如果我理解正確,項目1將生成一個jar文件,該文件夾包含lib目錄中的依賴關係。

,你可以在項目1有2個組裝處決,一個基本的罐子和其他具有相關性和執行清單,通常使用在同一個項目的多個工件不同的「分類」。

否則,你就需要「改頭換面」的罐子刪除你不希望使用一些插件像燈罩的庫。

我覺得第一個選項是好多了,也被默認值,如果將其發佈到庫罐子都將公佈,以便其他人可以得到一個或另一個。

+0

我希望創建一個只JAR和不是兩個。我想我的回購只持有一個文件。 你能幫助Shade插件的例子嗎?我可以使用的東西? –

0

如果要排除一個給定的依賴關係的所有依賴,使用排除

https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html

,並做到像

<dependency> 
    <groupId>sample.ProjectA</groupId> 
    <artifactId>Project-A</artifactId> 
    <version>1.0</version> 
    <scope>compile</scope> 
    <exclusions> 
    <exclusion> 
     <groupId>*</groupId> 
     <artifactId>*</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

當然,你必須確保失蹤傳遞運行時不需要依賴關係。

+0

即使我使用排除選項我最終可執行的JAR BCZ四季如春,啓動了Maven插件的功能? –