2015-05-08 143 views
-1

我有一個maven eclipse項目,我想從命令行導出爲可執行jar文件。項目中還有外部的圖書館罐子。如何從命令行獲取包含所有庫jar的可執行jar文件?導出爲可執行jar文件

編輯:: 現在有一個challenge.There實際上是兩個projects.One是PROJECT等爲Project_Framework。這兩個文件夾都有pom.xml。依賴關係寫入pom.xmlPROJECT文件夾中。 PROJECT取決於Project_Framework。在添加maven-shade插件後,它說它無法找到Project_Framework的快照依賴項。我該如何解決這個問題?

+0

可能的重複[如何使用Maven創建一個具有依賴關係的可執行jar?](http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies -using-maven) –

+0

@AlessandroDaRugna:這個問題對我來說是一個挑戰。實際上有兩個項目。一個是「PROJECT」,另一個是「Project_Framework」。這兩個文件夾都有pom.xml。依賴關係寫在PROJECT文件夾的pom.xml中。我應該在哪裏添加插件?這確實讓我感到困惑。 –

回答

2

您必須使用maven-shade-plugin將所有依賴項添加到您的jar。

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-shade-plugin</artifactId> 
      <version>1.7</version> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>shade</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <finalName>${project.build.finalName}</finalName> 
       <transformers> 
        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
         <resource>META-INF/spring.handlers</resource> 
        </transformer> 
        <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
         <resource>META-INF/spring.schemas</resource> 
        </transformer> 
       </transformers> 
      </configuration> 
     </plugin> 

然後將目錄更改PROJECT_FRAMEWORK。然後類型

mvn install 

然後,目錄又變成PROJECT。如果您已添加它,則可以簡單地運行

mvn package

+0

請勿使用[maven-shade-plugin的acient版本。當前版本是2.3](https://maven.apache.org/plugins/maven-shade-plugin/) – khmarbaise

+0

@khmarbaise:我所有的依賴都是用'pom.xml'編寫的。所以我相信沒有必要有一個插件。我期待一個應該這樣做的命令。 –

+1

@NevinRaj你需要這個插件。 maven不會將jar文件包含到artefact中。這將做插件 – Jens