8

尝试运行 NetBeans 项目时,我收到以下错误消息:

无法在项目 MyNetBeansProject 上执行目标 org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-test):执行目标 org.apache.maven.plugins:maven-surefire-plugin 的默认测试: 2.10:测试失败:插件 org.apache.maven.plugins:maven-surefire-plugin:2.10 或其依赖项之一无法解析:无法收集 org.apache.maven.plugins:maven-surefire-plugin 的依赖项: jar:2.10 (): 无法读取 org.apache.maven.surefire:surefire-booter:jar:2.10 的工件描述符: 无法从/到传输工件 org.apache.maven.surefire:surefire-booter:pom:2.10中央(http://repo.maven.apache.org/maven2):传输文件失败: http ://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-booter/2.10/ surefire-booter-2.10.pom. 返回码为:501,ReasonPhrase:HTTPS 必需。-> [帮助 1]

错误消息的以下部分是最重要的部分:

传输文件失败: http ://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-booter/2.10/surefire-booter-2.10.pom 。返回码为:501,ReasonPhrase:HTTPS 必需。

Services -> Maven Repositories -> Central Repository -> 鼠标右键点击“Central Repository”给出以下信息:

在此处输入图像描述

可以看到,远程存储库 URL 是“ http://repo.maven.apache.org/maven2/ ”。我认为应该改为“ https://repo.maven.apache.org/maven2/ ”。但是,问题是我似乎无法更改远程存储库 URL。

有谁知道如何在 NetBeans IDE 中更改 Maven 的远程存储库 URL?


更新:

在 NetBeans -> Preferences 下可以看到我的 NetBeans IDE 使用的 maven 版本是 3.0.5 版:

在此处输入图像描述

4

3 回答 3

13

我认为你有三个选择。

1. 迁移到 11.0

您可以迁移到 Netbeans 11.0 LTS(或 11.2),它使用内置的 Maven 3.3.9 版本。它已经使用https。

在此处输入图像描述

2.安装独立的Apache Maven

您可以继续使用 Netbeans 8.2,但下载独立的 apache maven,将其安装到您的系统并在Options -> Java -> Maven -> Maven Home 中设置新 maven 主目录的路径。

你只需要:

  1. 从Apache下载 apache-maven-3.6.3-bin.zip(或 apache-maven-3.6.3-bin.tar.gz)
  2. 解压到任意目录。这将是 Maven 的家。
  3. 将 NetBeans 中的 Maven 主目录设置为您提取 zip 文件的目录。
  4. 确保您在环境变量中设置了 JAVA_HOME

说明如何在此处安装独立版本。

如果您在 NetBeans 中正确设置了 Maven Home,它将显示更新版本: 在此处输入图像描述

3. 快,不推荐

只需使用 https 将存储库添加到您的 pom.xml 中(例如这样

<repositories>
        <repository>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>central</id>
            <name>Central Repository</name>
            <url>https://repo.maven.apache.org/maven2</url>
        </repository>
    </repositories>
<pluginRepositories>
    <pluginRepository>
        <releases>
            <updatePolicy>never</updatePolicy>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>central</id>
        <name>Central Repository</name>
        <url>https://repo.maven.apache.org/maven2</url>
    </pluginRepository>
</pluginRepositories>

Maven Central 迁移到 https

问题来自于此

自 2020 年 1 月 15 日起,中央存储库不再支持通过 HTTP 进行的不安全通信,并要求对存储库的所有请求都通过 HTTPS 进行加密。

以下是已解决的相关改进和相关更改

于 2020-02-03T17:57:34.220 回答
13

在 Netbeans 安装中,这对我有用:

Goto Netbeans installation folder > java > maven > conf,在这里我settings.xml使用管理权限更新了文件。

由于 http repo 链接现在不起作用,我只是为centralrepo 创建了一个镜像,该镜像是用 IDE 预先构建的,无法更改。

添加这个内部镜像标签settings.xml

<mirror>
      <id>mirror1</id>
      <mirrorOf>central</mirrorOf>
      <name>mirror1</name>
      <url>https://repo.maven.apache.org/maven2/</url>
</mirror>

重启 netbeans IDE 后,中央存储库将被我们指定的镜像覆盖。

于 2020-04-07T02:37:19.790 回答
0

转到 maven>conf 并更新 settings.xml

<profile>
    <id>maven-https</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    
    
    <repositories> 
        <repository>
            <id>central</id> 
            <url>https://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
         
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <url>https://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>  
</profile>
于 2022-02-11T17:10:43.883 回答