2013-10-15 62 views
0

Maven的新功能...在Maven系統中部署的第三方罐子在哪裏

我已經成功地爲我的應用程序創建了一個jar。我想從這個jar「java -jar foo.jar MyClass」運行應用程序,但我不知道從哪裏獲得(並打包)所有依賴關係。 maven是否有這樣的目標?如果沒有,我是否使用類似proguard的東西?然後,我如何將它融入到Maven的目標中?

在此先感謝

+0

謝謝大家。確實,答案在這裏http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven – user2884343

回答

0

的Maven把所有你的依賴在你~/.m2文件夾中。 (如果你使用maven 2)

只要你的pom.xml擁有它所需要的一切,做一個mvn clean install將處理所有的細節。

請記住,你可以在你的項目中看到它的所有依存關係做了mvn dependency:tree:P

+0

我認爲OP想打包依賴關係_with artifact_以便可以執行。在〜/ .m2中有依賴關係並沒有多大幫助... –

0

Maven將遞歸下載所有的依賴關係,並將它們放到你的本地庫。

從命令行運行java的棘手問題之一就是獲取類路徑。但是,你可以得到Maven來執行它爲您提供:

How do I execute a program using Maven?

0

這並不完全回答你的queston,而是要創造一個「胖」罐子,用裝入所有dependencys,嘗試Maven的編譯插件:

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>com.stackoverflow.example.MainClass</mainClass> 
        </manifest> 
       </archive> 
       <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> 
    </plugins> 
</build>