如何编译基于Maven的Java项目以从命令行运行它
我有一个Maven项目,我需要以某种方式进行编译,以便能够将编译后的文件传输到不同的机器上,然后在那里执行(可能使用不同的Java版本)。 我看了这个SO question
并且能够执行:
mvn clean install
mvn dependency:copy-dependencies
但当我尝试时:
cd target/
java -cp myApp-0.0.1.jar:dependency myApp
我得到
Error: Could not find or load main class myApp
我的pom。xml没有mvn汇编插件或maven jar插件(我在target/after mvn clean install中成功地获得了.jar)
我不确定这些步骤是否与我的目标相关,因为我需要的是创建一些不需要任何java-jar或mvn就可以运行的东西,并且可以移植到不同的机器上运行
# 1 楼答案
有一个Maven构建插件可以将所有依赖项捆绑在一个JAR中。您可以简单地使用
不考虑类路径依赖关系
下面是
Maven
插件。将MainClass
替换为您的入口点由于它被绑定到
package lifecycle
,所以在执行以下操作后,您将在目标目录中找到绑定的JAR考虑到您担心代码不会在另一台机器上运行,Java是平台独立的,通常您可以依赖它。然而,有三件事让我觉得生活很艰难:
ps
在windows上不起作用,dir /s
在*nix上可能不起作用李>source
和target
编译选项:http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html#crosscomp-example