Maven的新功能...在Maven系統中部署的第三方罐子在哪裏
我已經成功地爲我的應用程序創建了一個jar。我想從這個jar「java -jar foo.jar MyClass」運行應用程序,但我不知道從哪裏獲得(並打包)所有依賴關係。 maven是否有這樣的目標?如果沒有,我是否使用類似proguard的東西?然後,我如何將它融入到Maven的目標中?
在此先感謝
Maven的新功能...在Maven系統中部署的第三方罐子在哪裏
我已經成功地爲我的應用程序創建了一個jar。我想從這個jar「java -jar foo.jar MyClass」運行應用程序,但我不知道從哪裏獲得(並打包)所有依賴關係。 maven是否有這樣的目標?如果沒有,我是否使用類似proguard的東西?然後,我如何將它融入到Maven的目標中?
在此先感謝
的Maven把所有你的依賴在你~/.m2
文件夾中。 (如果你使用maven 2)
只要你的pom.xml
擁有它所需要的一切,做一個mvn clean install
將處理所有的細節。
請記住,你可以在你的項目中看到它的所有依存關係做了mvn dependency:tree
:P
我認爲OP想打包依賴關係_with artifact_以便可以執行。在〜/ .m2中有依賴關係並沒有多大幫助... –
Maven將遞歸下載所有的依賴關係,並將它們放到你的本地庫。
從命令行運行java的棘手問題之一就是獲取類路徑。但是,你可以得到Maven來執行它爲您提供:
這並不完全回答你的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>
謝謝大家。確實,答案在這裏http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven – user2884343