Maven 从错误的地方读取 settings.xml
Maven reading settings.xml from wrong place
我是 Maven 的新手并且 Ubuntu。我在构建 Maven 项目时遇到问题。当我 运行 mvn clean -X
命令时,我可以看到下面的 DEBUG 日志。
[DEBUG] Reading global settings from /space/user/programs/apache-maven-3.5.3/conf/settings.xml
[DEBUG] Reading user settings from ?/.m2/settings.xml
[DEBUG] Reading global toolchains from /space/user/programs/apache-maven-3.5.3/conf/toolchains.xml
[DEBUG] Reading user toolchains from ?/.m2/toolchains.xml
[DEBUG] Using local repository at /space/user/git/receiver/?/.m2/repository
我在 .bashrc
文件中有以下设置
export JAVA_HOME=/space/user/programs/jdk1.8.0_162
export M2_HOME=/space/user/programs/apache-maven-3.5.3
export MAVEN_HOME=/space/user/programs/apache-maven-3.5.3
我在 /home/user/.m2
文件夹中有 settings.xml
个文件
为什么 maven 不采摘 /home/user/.m2/settings.xml
?请问我在这里缺少什么?如果您需要任何进一步的信息,请告诉我,我会更新问题。
我正在使用 Ubuntu 16.04.
更新:
mvn --version
命令的输出
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T19:49:05Z)
Maven home: /space/user/programs/apache-maven-3.5.3
Java version: 1.8.0_162, vendor: Oracle Corporation
Java home: /space/user/programs/jdk1.8.0_162/jre
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "4.13.0-37-generic", arch: "i386", family: "unix"
更新:
像这样 mvn --settings /home/user/.m2/settings.xml clean -X
覆盖命令行上的设置工作正常。但这不是我想要的解决方案。
解决方案是在 64 位系统上使用 64 位 JDK。我以某种方式复制了 32 位 JDK,这就是问题所在。它在 64 位运行时上按预期工作。
这个问题帮我解决了问题 - Java: System.getProperty("user.home") returns "?"
注意:您的 linux 机器可能同时安装了 32 位和 64 位版本的 JVM。甚至 Java 11。@Newbee 是正确的,这会导致他们描述的奇怪的 maven 行为。检查您的备选方案以查看指向哪个(对于 CentOS / RHEL 机器):
ls -l /etc/alternatives/java_sdk_11
sudo alternatives --display java_sdk_11
sudo alternatives --config java_sdk_11
我是 Maven 的新手并且 Ubuntu。我在构建 Maven 项目时遇到问题。当我 运行 mvn clean -X
命令时,我可以看到下面的 DEBUG 日志。
[DEBUG] Reading global settings from /space/user/programs/apache-maven-3.5.3/conf/settings.xml
[DEBUG] Reading user settings from ?/.m2/settings.xml
[DEBUG] Reading global toolchains from /space/user/programs/apache-maven-3.5.3/conf/toolchains.xml
[DEBUG] Reading user toolchains from ?/.m2/toolchains.xml
[DEBUG] Using local repository at /space/user/git/receiver/?/.m2/repository
我在 .bashrc
文件中有以下设置
export JAVA_HOME=/space/user/programs/jdk1.8.0_162
export M2_HOME=/space/user/programs/apache-maven-3.5.3
export MAVEN_HOME=/space/user/programs/apache-maven-3.5.3
我在 /home/user/.m2
文件夹中有 settings.xml
个文件
为什么 maven 不采摘 /home/user/.m2/settings.xml
?请问我在这里缺少什么?如果您需要任何进一步的信息,请告诉我,我会更新问题。
我正在使用 Ubuntu 16.04.
更新:
mvn --version
命令的输出
Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T19:49:05Z)
Maven home: /space/user/programs/apache-maven-3.5.3
Java version: 1.8.0_162, vendor: Oracle Corporation
Java home: /space/user/programs/jdk1.8.0_162/jre
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "4.13.0-37-generic", arch: "i386", family: "unix"
更新:
像这样 mvn --settings /home/user/.m2/settings.xml clean -X
覆盖命令行上的设置工作正常。但这不是我想要的解决方案。
解决方案是在 64 位系统上使用 64 位 JDK。我以某种方式复制了 32 位 JDK,这就是问题所在。它在 64 位运行时上按预期工作。
这个问题帮我解决了问题 - Java: System.getProperty("user.home") returns "?"
注意:您的 linux 机器可能同时安装了 32 位和 64 位版本的 JVM。甚至 Java 11。@Newbee 是正确的,这会导致他们描述的奇怪的 maven 行为。检查您的备选方案以查看指向哪个(对于 CentOS / RHEL 机器):
ls -l /etc/alternatives/java_sdk_11
sudo alternatives --display java_sdk_11
sudo alternatives --config java_sdk_11