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