我正在尝试释放我的软件(我之前从未这样做过),到目前为止我已经能够执行mvn release:prepare.当我正在执行release:执行时出现以下错误:
[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存储库,所以我将以下内容添加到我的.m2文件夹中的settings.xml
编辑包括Edwin Buck的回答:
<?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>
Run Code Online (Sandbox Code Playgroud)
这是我的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>
Run Code Online (Sandbox Code Playgroud)
如何让maven访问svn存储库?
好吧,正如Edwin Buck建议我不应该使用localhost,但由于我无法让它工作,否则我想我会尝试使用我用于工作的远程SVN服务器.现在我得到一个不同的错误:
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plug in:2.7:deploy …
我们正在使用Maven 2并拥有一个使用SSL客户端身份验证保护的maven存储库管理器.为了让Maven访问存储库,必须将以下系统属性传递给Java:
javax.net.ssl.trustStore = trust.jks
javax.net.ssl.trustStorePassword = <trustPass>
javax.net.ssl.keyStore = keystore.p12
javax.net.ssl.keyStoreType = pkcs12
javax.net.ssl.keyStorePassword =<keyStorePass>
有关详细信息,请参阅此迷你指南.
为了在Maven中设置这些系统属性,我必须使用MAVEN_OPTS环境变量(或直接在命令行上传递它们).无论哪种方式,当Maven实际执行时,所有这些属性都可以被系统上的其他用户看到(通过ps),包括我的密钥库密码.
有没有办法设置这些属性,以便密码不会在命令行上公开?