我是maven的新手。我刚刚加入了一家新公司,他们将maven用于他们所有的项目。 我为maven依赖项设置了公司的服务器。 我正在使用Fedora。
对于大多数项目来说一切顺利。对于其中一些,我在运行mvn compile时遇到此错误:
无法在项目xlayer上执行目标org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile(default-compile):致命错误编译:执行外部编译器时出错。执行进程时出错。无法运行程序“java -classpath”$ {env.M2_REPO} /org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar“org.eclipse.jdt.internal.compiler.batch .Main -sourcepath“src / main”“(在目录”/ home / es / ion_projects / XLayer“中):error = 2,没有这样的文件或目录 - > [帮助1]
我在网上看了好几个小时,没什么可做的。 PATH和JAVA_HOME设置正确。
运行mvn --version给出:
Apache Maven 3.0.4(rNON-CANONICAL_2013-01-22_13-18_mockbuild; 2013-01-22 14:18:29 + 0100) Maven主页:/ usr / share / maven Java版本:1.7.0_17,供应商:Oracle Corporation Java home:/home/es/kit/jdk1.7.0_17/jre 默认语言环境:en_US,平台编码:UTF-8 操作系统名称:“linux”,版本:“3.8.3-103.fc17.i686”,arch:“i386”,系列:“unix”
更新:
在pom.xml中(父节点,但这并不重要),maven-compiler-plugin将可执行文件定义为
java -classpath“$ {env.M2_REPO} / org / eclipse / jdt / core / $ {org.eclipse.jdt.core.version} / core - $ {org.eclipse.jdt.core.version}。 jar“org.eclipse.jdt.internal.compiler.batch.Main -sourcepath”src / main“
为了使用Eclipse编译器而不是sun的编译器。这适用于使用Windows的开发人员。在linux上,maven尝试将“java -classpath ....”作为单个命令执行,该命令不存在。
我仍在寻求解决方案。我发现的唯一的黑客是将可执行文件“java -classpath ...”放在我的机器上的可执行文件中,并将该文件的名称放在maven上的标签中。