maven release -> peer 尚未经过身份验证

2022-09-01 23:58:31

我正在尝试发布我的软件(我以前从未这样做过),到目前为止,我已经能够执行mvn release:prepare。当我执行 release:perform 时,我收到以下错误:

[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plug
in:2.7:deploy (default-deploy) on project img2stl: Failed to deploy artifacts: C
ould not transfer artifact nl.byterendition:img2stl:jar:0.9 from/to byterenditio
n-releases (https://localhost:443/svn/repo/releases): peer not authenticated ->
[Help 1]

我已经在localhost:443上设置了一个受本地密码保护的svn存储库,所以我在我的设置中添加了以下内容.xml在我的.m2文件夹中

编辑以包括埃德温·巴克的答案:

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <servers>
        <server>
            <id>byterendition-releases</id>
            <username>username</username>
            <password>password</password>
        </server>
        <server>
            <id>byterendition-snapshots</id>
            <username>username</username>
            <password>password</password>
        </server>
    </servers>
</settings>

这是我的pom的有用部分:

<distributionManagement>
    <repository>
        <id>byterendition-releases</id>
        <url>https://localhost:443/svn/repo/releases</url>
    </repository>
    <snapshotRepository>
        <id>byterendition-snapshots</id>
        <url>https://localhost:443/svn/repo/snapshots</url>
    </snapshotRepository>
</distributionManagement>

如何让专家访问 svn 存储库?

好吧,正如Edwin Buck所建议的那样,我不应该使用localhost,但是由于我无法让它工作,否则我想我会使用我用于工作的远程SVN服务器来尝试此操作。现在我得到一个不同的错误:

[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plug
in:2.7:deploy (default-deploy) on project img2stl: Failed to deploy artifacts: C
ould not transfer artifact nl.byterendition:img2stl:jar:0.9.5 from/to byterendit
ion-releases (https://svn.science.ru.nl/repos/estens/releases/): Failed to trans
fer file: https://svn.science.ru.nl/repos/estens/releases/nl/byterendition/img2s
tl/0.9.5/img2stl-0.9.5.jar. Return code is: 409, ReasonPhrase: Conflict. -> [Hel
p 1]

同样,我可以从 Eclipse 访问此存储库。有谁知道我做错了什么?


答案 1

从版本 3.0.5 开始,Maven 会检查 https 连接上的 SSL 证书。您可以通过添加命令行参数来临时解决此问题

-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true

将 SSL 证书安装到 JRE 中应该可以永久解决此问题。

官方文件:http://maven.apache.org/wagon/wagon-providers/wagon-http/


答案 2

步骤 1.将 DER 格式的证书下载为 *.cer (/X.509 .cert) 文件到本地目录

(您可以从浏览器执行此操作;对于 Chrome,请单击锁定符号,显示证书 - >复制到文件)

步骤2.将其导入到 Java 信任库

\Program_Files\Java\jdk1.6.0_45\jre\lib\security>%JAVA_HOME%\jre\bin\keytool -v -alias mavensrv -import -file d:\temp\apacher.cer -keystore trust.jks

第3步.将 maven 的路径作为环境变量提供

set MAVEN_OPTS=-Xmx512m -Djavax.net.ssl.trustStore=%JAVA_HOME%/jre/lib/security/trust.jks -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.keyStore=%JAVA_HOME%/jre/lib/security/trust.jks -Djavax.net.ssl.keyStoreType=jks -Djavax.net.ssl.keyStorePassword=changeit