mvn release:使用maven 3准备不起作用

时间:2013-03-04 15:06:13

标签: maven maven-2 maven-3 maven-plugin maven-release-plugin

我的JAVA_HOME已正确设置为/usr/local/java/jdk1.7.0_01

$echo $JAVA_HOME
/usr/local/java/jdk1.7.0_01

$sudo update-alternatives --config java

There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
* 2            /usr/local/java/jdk1.7.0_01/bin/java             1         manual mode
  3            /usr/local/java/jre1.7.0_01/bin/java             1         manual mode

我正在使用mvn release:prepare插件来生成git标签并在pom.xml中翻转项目的版本。如果我使用maven 2.2.1它是完美的。当我使用maven 3.0.4时,我得到:

[INFO] Error: JAVA_HOME is not defined correctly.
[INFO]   We cannot execute /usr/local/java/jdk1.7.0_01/bin/java/bin/java

我猜maven 3中可能存在一个错误,当它运行时,它会尝试将/bin/java两次附加到我的JAVA_HOME。

4 个答案:

答案 0 :(得分:2)

尝试使用标准的Oracle / Sun JDK,如果这是一个选项。我之前在Debian / Ubuntu上打过这个。我从来没有耐心去弄清楚OpenJDK有什么问题,但它并不能很好地应对Maven。或者......至少......这是我的观察。

答案 1 :(得分:2)

JAVA_HOME必须指向jre,然后设置:

export JAVA_HOME=/usr/local/java/jdk1.7.0_01/jre

答案 2 :(得分:0)

在您的mvn命令文件中搜索JAVA_HOME(使用which mvn查找)。 如果尚未定义,我会处理JAVA_HOME。

所以也许你可以通过unset JAVA_HOME

绕过它

答案 3 :(得分:0)

删除 Maven 主页中的文件,它将更改为新的。

mv /usr/local/Cellar/maven/3.8.1/libexec /usr/local/Cellar/maven_bak

在此之前,您需要先导出您的 jdk 和 maven。以及如何执行此操作,您可以查看以下链接。

https://stackoverflow.com/a/67715235/11679986