Maven 2 JAVA_家被Maven弄脏了
我正在用统一的Maven构建来改造大量现有的Java项目。由于每个项目都是成熟的,并且已经建立了基于Ant的构建,所以我正在使用Maven 2 JAVA_家被Maven弄脏了,maven-2,ant,maven,Maven 2,Ant,Maven,我正在用统一的Maven构建来改造大量现有的Java项目。由于每个项目都是成熟的,并且已经建立了基于Ant的构建,所以我正在使用maven antrun plugin执行现有的build.xml,如下所示: <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <exe
maven antrun plugin
执行现有的build.xml
,如下所示:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<configuration>
<tasks>
<ant antfile="build.xml" target="compile" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
让我困惑的是
JAVA_HOME=C:\JAVA\jdk1.6.0_13
作为我的环境设置的一部分,当执行mvn.bat
时,这正是我得到的值,但是正如您在错误消息中看到的,它显示为C:\JAVA\jdk1.6.0_13\jre
antcompile
一切都可以正常编译这是否意味着,
maven-antrun-plugin
可能执行类似于set-JAVA\u-HOME=%JAVA\u-HOME%\jre
?我搜索了批处理/生成文件,但找不到发生更改的位置我可以通过在我的ant build.xml文件中放置以下属性定义来修复此问题:
<property name="build.compiler" value="extJavac"/>
这是公认答案中外部链接的缺点。Codehaus关闭了,因此解决方案消失了。以下是链接背后的内容供参考-您基本上只需将
..
块复制到antrun插件中即可
maven antrun插件运行ant时,JAVA_HOME设置为JDK的jre子目录,即使整个运行的JAVA_HOME是JDK。
其他地方有关于如何在项目级别为JDK的tools.jar创建依赖项的文档,但这对antrun没有帮助,antrun是一个插件。
以下配置文件执行此任务。路径中的“..”经过“jre”目录向上拉到lib目录
tools.jar
org.apache.maven.plugins
maven antrun插件
com.sun
工具
1.5.0
系统
${java.home}/./lib/tools.jar
感谢您扩展断开的链接!先生,你是网络英雄,谢谢,我已经搜索了好几个小时了。它起作用了。我刚换成java版本1.8.0。这应该是现在公认的答案!当tools.jar被删除时,如何在Java 9中解决这个问题?
<property name="build.compiler" value="extJavac"/>
<profiles>
<profile>
<id>tools.jar</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.5.0</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>