我一直在与一位同事一起解决我刚刚加入的一个新项目遇到的问题.长话短说,maven没有正确构建我的.war文件.当我给我的同事我的战争文件时,他遇到了同样的问题,当他给我他编译的.war文件时,一切正常.我们都在使用相同的来源.所以,我正在尝试正确设置maven(与他相同),我们现在都拥有相同版本的maven.但是,我认为maven正在错误地查看java_home.
当我执行mvn -version命令时,我得到以下内容:
C:\java\KME_workspace\CU-KME>mvn -version
Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500)
Maven home: C:\java\tools\apache-maven-3.0.4
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: C:\java\jdks\jdk1.6.0_45\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
Run Code Online (Sandbox Code Playgroud)
我的系统的JAVA_HOME变量正确设置为C:\ java\jdks\jdk1.6.0_45.
任何人都知道我的maven正在看jre,我该如何正确地将它设置回JDK?我也可能正确地看待这个问题,所以如果你有任何想法,那就太好了.
谢谢.
正如一些人所指出的那样,在maven版本的java家中的JRE引用是我的一个红鲱鱼兔洞.经过进一步测试,我有一些新的有趣信息.我直接从命令行运行maven命令.我使用eclipse从我们的svn存储库中检出代码,并尝试在该代码上运行maven包,并且.war无法正确构建.但是,如果我在eclipse中将团队导出到新目录,并在其上运行maven包,它会构建.war罚款并且工作正常.据我了解,eclipse中的团队导出会删除导出目录中的所有subversion文件.任何人对如何解决这个问题都有任何想法?
Jun*_*san 22
$ {java.home}指定当前JRE_HOME环境的路径,使用相对路径获取,例如:$ {java.home} ../ bin/java.exe
java.home属性与JAVA_HOME环境设置不同.它实际上是动态属性,显示哪个JRE正在运行您的代码.
尝试正确设置java.home属性,看看它是否有效.