【问题标题】:Configure maven3.1.1 and maven3.6.0 on the same PC在同一台PC上配置maven3.1.1和maven3.6.0
【发布时间】:2019-09-07 09:38:42
【问题描述】:

由于某些原因,我必须在我的 Windows PC 上使用两个不同的 maven 版本。 我已经安装了 maven 3.6.0,运行良好。

现在我想安装 maven3.1.1 并像这样运行它,例如:

3.1.1

mvnOld clean install

3.6.0

mvn clean install

所以我确实在我的 Windows 系统路径中添加了 3.1.1 的 bin 文件夹,并在同一个文件夹中重命名了文件以匹配 mvnOld

由于某些原因它不起作用,当打开一个新的 CMD 时,mvnOld 仍然是一个未知命令。

我错过了什么?还有更好的方法吗?

ps:在这些文件中使用了 $M2_HOME,我确实将其替换为在我的 3.1.1 文件夹中指出的 $M2_OLD_HOME。

【问题讨论】:

  • PATH 上只能有其中一个。通过M2_HOME 分离将不起作用,因为它不受支持......为什么需要不同的 Maven 版本?为什么不只使用 Maven 3.6.0?
  • 我必须建立一个旧项目,公司严格要求我使用 maven3.1.1 而不是 3.6.0...但是我想它可以与 3.6.0 一起使用,但让我们继续它到原来的问题。所以它不能以任何方式工作?
  • 所以每次我想从 3.6.0 切换到 3.1.1 时都必须更改我的系统变量
  • 也许这可能是正确的选择:sdkman.io

标签: windows maven system-paths


【解决方案1】:

你的方法很脆弱。

我知道问题所在:要构建 Nexus 2.x 插件,您只能使用 Maven 3.0.4 或 Maven 3.0.5。

我没有把旧的Maven放在路径上,而是用Eclipse解决了问题:对于Nexus插件项目,我设置了旧的Maven。

如果您需要使用命令行,您可以使用旧 Maven 的完整限定名。

【讨论】:

  • 没想过用 Eclipse 构建它,它应该适用于我的情况!当您说完整的限定名称时,您的意思是使用 anyPath/maven3.1.1/bin/mvn clean install (例如) 调用命令?
  • 是的。在 Eclipse 中,可以使用“Run As -> Maven build ...”,然后从列表中选择 Maven(如果缺少,需要先添加)
  • Eclipse 解决方案正在运行,但对于完整的限定名称,我不明白它如何与 Windows 一起使用。首先在 mvn 文件中,您可以看到它正在读取您的 M2_HOME 变量,因此我们应该将其更改为正确的文件夹。而且它不是可执行文件,那么它怎么能运行呢?您能否为命令行部分添加一些详细信息?
  • 无论如何我都会验证你的答案,因为使用 Eclipse 对我有用。但我不明白命令行部分
  • Maven 中的mvn.cmd 是一个可执行命令。您可以运行它并给出完整路径。
【解决方案2】:
  1. 删除 Win 系统变量 M2_HOME;

  2. 不要将两个版本的maven文件放在同一个文件夹中,不要重命名文件;

  3. 编辑 apache-maven-3.1.1\bin\mvn.cmd:在“开始验证”之前添加 M2_HOME

    设置 M2_HOME=D:\apache-maven-3.1.1

  4. 以同样的方式编辑 apach-maven-3.6.0 mvn.cmd

  5. 运行它并给出完整路径,

    D:\apache-maven-3.1.1\bin\mvn --version D:\apache-maven-3.6.0\bin\mvn --version

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    相关资源
    最近更新 更多