我一直在与一位同事一起解决我刚刚加入的一个新项目中遇到的问题。长话短说,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"
我系统的 JAVA_HOME 变量正确设置为 C:\java\jdks\jdk1.6.0_45。
任何人都知道我的 maven 正在查看 jre,我该如何正确地将其设置回 JDK?我也有可能正确地看待问题,所以如果你有任何想法,那就太好了。
谢谢。
正如一些人所指出的,在我看来,maven 版本的 java home 中的 JRE 引用是一个红鲱鱼兔子洞。经过进一步测试,我得到了一些新的有趣信息。我直接从命令行运行 maven 命令。我使用 eclipse 从我们的 svn 存储库中检查代码,并尝试在该代码上运行 maven 包,但 .war 没有正确构建。但是,如果我在 eclipse 中将团队导出到一个新目录,并在其上运行 maven 包,它会构建 .war 并完美运行。据我了解,eclipse中的团队导出会删除导出目录中的所有颠覆文件。有人对如何解决这个问题有任何想法吗?