Fin*_*005 17 java svn https release maven
我正在尝试释放我的软件(我之前从未这样做过),到目前为止我已经能够执行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 (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访问这个repo.有谁知道我做错了什么?
rec*_*rec 64
从版本3.0.5开始,Maven会检查https连接上的SSL证书.您可以通过添加命令行参数来临时解决此问题
-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
Run Code Online (Sandbox Code Playgroud)
将SSL证书安装到JRE中应该永久解决问题.
官方文件:http://maven.apache.org/wagon/wagon-providers/wagon-http/
Ale*_*nen 12
步骤1.将DER格式*.cer(/X.509 .cert)文件中的证书下载到本地目录
(您可以在浏览器中执行此操作;对于Chrome,请单击"锁定"符号,"显示Ceritficate" - >"复制到文件")
步骤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的路径作为环境变量
设置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
您输入的settings.xml服务器 ID 为localhost,但您正在访问 ID 为 和 的存储byterendition-releases库byterendition-snapshots。
这意味着maven不会识别并将凭据与这两个服务器关联起来,因为它们具有不同的“身份”。您将需要byterendition-releases和的 settings.xml 条目byterendition-snapshots。
现在,如果您添加了一个条目,例如
<server>
<id>byterendition-releases</id>
<username>user</username>
<password>password</password>
</server>
Run Code Online (Sandbox Code Playgroud)
byterendition-releases然后,maven 将使用用户名user和密码来满足 https 身份验证质询password,因为它具有 的服务器凭证条目byterendition-releases。
您还必须添加 的附加条目byterendition-snapshots,或将其设置为与 具有相同的服务器 ID byterendition-releases。
--- 编辑以跟上更新的问题 ---
您正在通过 URL 访问您的存储库localhost。虽然如果您的存储库确实位于同一主机上,这可能会起作用,但有很多原因可能会导致它不起作用。
不管怎样,放弃本地主机。如果您无法为机器获得稳定的 DNS 名称,甚至输入 IP 地址也是更好的选择。如果您的 SVN 服务器位于 DHCP 上,那么请投入时间让 DynamicDNS 正常工作(但实际上,如果可以的话,您应该为服务器获取静态 IP)。
| 归档时间: |
|
| 查看次数: |
51515 次 |
| 最近记录: |