我正在構建一個包含使用Spring的客戶端模塊的服務。將實現客戶端的服務不包含spring,但它依賴於依賴於Spring的客戶端。理想情況下,我希望客戶端在JAR中包含所需的Spring依賴關係,但似乎無法弄清楚如何完成此任務。我已經看到了使用maven-assembly-plugin的幾個不同的例子,但我寧願不必使用除「mvn clean package」之外的其他東西來實現此目的。包含maven依賴項的客戶端JAR
任何幫助表示讚賞。
我正在構建一個包含使用Spring的客戶端模塊的服務。將實現客戶端的服務不包含spring,但它依賴於依賴於Spring的客戶端。理想情況下,我希望客戶端在JAR中包含所需的Spring依賴關係,但似乎無法弄清楚如何完成此任務。我已經看到了使用maven-assembly-plugin的幾個不同的例子,但我寧願不必使用除「mvn clean package」之外的其他東西來實現此目的。包含maven依賴項的客戶端JAR
任何幫助表示讚賞。
maven-shade-plugin允許您構建一個包含一些(或全部)依賴關係的超級jar包。它應該允許你做你需要的。
通過將程序集插件的單個目標綁定到項目的構建生命週期,您可以通過運行mvn clean package
來完成所需的任務。
剪切/粘貼POM配置從usage頁面插件的做到這一點,
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.2</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
[...]
</project>
當然,你會調整或者要麼爲使用不同的預定義的描述符,甚至使用單獨的描述符文件。