使用 Ivy-Ant 在 nexus 中发布工件:未经凭据授权?
Posted
技术标签:
【中文标题】使用 Ivy-Ant 在 nexus 中发布工件:未经凭据授权?【英文标题】:Publish artifact in nexus using Ivy-Ant: Unauthorized by Credentials? 【发布时间】:2015-10-13 12:17:21 【问题描述】:这是我的代码 ivy.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info organisation="nameOrganisation" module="nameModule" revision="1.0" status="release" publication="20150723102057">
</info>
<publications>
<artifact name="artifactName" type="jar" ext="jar"/>
</publications>
<dependencies>
<dependency org="org.springframework" name="spring-web-servlet" rev="3.0.5.RELEASE" transitive="false"/>
...
build.xml 文件
<target name="publish" description="Upload to Nexus">
<ivy:settings id="ivy.settings" file="$ivy.settings">
<credentials host="host" realm="Sonatype Nexus Repository Manager" username="$repo.username" passwd="$repo.password"/>
</ivy:settings>
<ivy:retrieve />
<ivy:makepom ivyfile="$ivy.file" pomfile="ivy.pom"/>
<ivy:publish resolver="publish" overwrite="true" publishivy="false" srcivypattern="$ivy.file" settingsRef="ivy.settings" forcedeliver="true" organisation="organisation" module="nameModule" pubrevision="1.0" revision="1.0">
<artifacts pattern="$lib.app.dir/[artifact](-[classifier]).[ext]"/>
</ivy:publish>
</target>
ivysettings-public.xml
<ivysettings>
<settings defaultResolver="nexus"/>
<!-- <credentials host="host" realm="Sonatype Nexus Repository Manager" username="user" passwd="pwd"/>-->
<resolvers>
<chain name="nexus">
<ibiblio name="name1" m2compatible="true" root="http://host:8080/nexus/content/repositories/name1/"/>
<ibiblio name="central" m2compatible="true" root="http://host:8080/nexus/content/repositories/name2/"/>
</chain>
</resolvers>
</ivysettings>
当我运行 build.xml 时,我总是得到相同的结果,它会忽略我的凭据吗?还是其他问题?
buildPublish.xml:39: impossible to publish artifacts for organisation#nameModule;1.0: java.io.IOException: Access to URL [http://host:8080/nexus/content/repositories/name1/organisation/nameModule/1.0/n ameModule-1.0.jar] was refused by the server: Unauthorized
我需要一些想法!!! 谢谢
【问题讨论】:
常春藤设置文件的凭据部分已被注释掉。这可以解释为什么 ivy 会忽略它们.... 【参考方案1】:有同样的问题。 4 小时后,我找到了解决方案。
我必须在我的凭据中分开主机和端口:
<credentials
host="$repo.host"
port="$repo.port"
realm="$repo.realm"
username="$repo.username"
passwd="$repo.password"/>
【讨论】:
似乎“凭据”节点不支持“端口”属性:ant.apache.org/ivy/history/2.4.0/settings/credentials.html以上是关于使用 Ivy-Ant 在 nexus 中发布工件:未经凭据授权?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ivy 和 nexus 发布 3rdparty 工件