【发布时间】:2014-02-22 14:17:05
【问题描述】:
尝试将工件发布到远程存储库时出现以下错误。
构建失败 /home/kannan/.jenkins/workspace/projectA/build.xml:87: 无法为 com.mycompany#projectA 发布工件;1.0: java.io.IOException: PUT 操作到 URL http://myserver.com/repository /com.mycompany/projectA/1.0/ivy-1.0.xml 失败,状态码为 405:方法不允许 在 org.apache.ivy.util.url.AbstractURLHandler.validatePutStatusCode(AbstractURLHandler.java:82) 在 org.apache.ivy.util.url.BasicURLHandler.upload(BasicURLHandler.java:264) 在 org.apache.ivy.util.url.URLHandlerDispatcher.upload(URLHandlerDispatcher.java:82) 在 org.apache.ivy.util.FileUtil.copy(FileUtil.java:150) 在 org.apache.ivy.plugins.repository.url.URLRepository.put(URLRepository.java:84) 在 org.apache.ivy.plugins.repository.AbstractRepository.put(AbstractRepository.java:130) 在 org.apache.ivy.plugins.resolver.RepositoryResolver.put(RepositoryResolver.java:234) 在 org.apache.ivy.plugins.resolver.RepositoryResolver.publish(RepositoryResolver.java:216) 在 org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:275) 在 org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:254) 在 org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:166) 在 org.apache.ivy.Ivy.publish(Ivy.java:615) 在 org.apache.ivy.ant.IvyPublish.doExecute(IvyPublish.java:312) 在 org.apache.ivy.ant.IvyTask.execute(IvyTask.java:277) 在 org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 在 sun.reflect.GeneratedMethodAccessor4.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 在 org.apache.tools.ant.Task.perform(Task.java:348) 在 org.apache.tools.ant.Target.execute(Target.java:390) 在 org.apache.tools.ant.Target.performTasks(Target.java:411) 在 org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 在 org.apache.tools.ant.Project.executeTarget(Project.java:1368) 在 org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 在 org.apache.tools.ant.Project.executeTargets(Project.java:1251) 在 org.apache.tools.ant.Main.runBuild(Main.java:809) 在 org.apache.tools.ant.Main.startAnt(Main.java:217) 在 org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) 在 org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) 无法发布工件; 对 URL http://myserver.com/repository/com.mycompany/projectA/1.0/ivy-1.0.xml 的 PUT 操作失败,状态码为 405:不允许方法ivy.xml
<ivy-module version="2.0">
<info organisation="com.mycompany" module="projectA" revision="${version}">
<description>
This project provides interface to projectA.
</description>
</info>
<publications>
<artifact />
</publications>
<dependencies defaultconfmapping="*->*,!sources,!javadoc">
<dependency org="com.hazelcast" name="hazelcast-client" rev="2.5" transitive="false"/>
<dependency org="com.hazelcast" name="hazelcast" rev="3.1.5" transitive="false"/>
<dependency org="log4j" name="log4j" rev="1.2.16" transitive="false"/>
</dependencies>
</ivy-module>
ivysettings.xml
<ivysettings>
<settings defaultResolver="defaultresolver" />
<property name="ibiblio-maven2-root" value="http://repo1.maven.org/maven2/" />
<property name="build-server" value="http://myserver.com/repository" />
<resolvers>
<chain name="defaultresolver">
<ibiblio name="local" m2compatible="true" root="${build-server}" />
<url name="repository">
<ivy pattern="${build-server}/[organisation]/[module]/[revision]/ivy-[revision].xml" />
<artifact pattern="${build-server}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
</chain>
</resolvers>
</ivysettings>
构建.xml
<ivy:publish artifactspattern="${build.dir}/[artifact].[ext]"
resolver="repository" organisation="com.mycompany"
module="projectA" pubrevision="${version}" status="release" conf="java" />
【问题讨论】: