2012-01-11 103 views
0

我正在構建一個包含使用Spring的客戶端模塊的服務。將實現客戶端的服務不包含spring,但它依賴於依賴於Spring的客戶端。理想情況下,我希望客戶端在JAR中包含所需的Spring依賴關係,但似乎無法弄清楚如何完成此任務。我已經看到了使用maven-assembly-plugin的幾個不同的例子,但我寧願不必使用除「mvn clean package」之外的其他東西來實現此目的。包含maven依賴項的客戶端JAR

任何幫助表示讚賞。

回答

2

maven-shade-plugin允許您構建一個包含一些(或全部)依賴關係的超級jar包。它應該允許你做你需要的。

0

通過將程序集插件的單個目標綁定到項目的構建生命週期,您可以通過運行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> 

當然,你會調整或者要麼爲使用不同的預定義的描述符,甚至使用單獨的描述符文件。