2012-02-08 34 views
1

私はJenkinsをCIサーバーとして使用していますが、Apache IvyはAndroidプロジェクトの依存関係を管理するために使用されており、Artifactoryはすべてのアーティファクトをホストしています。 ivysettings.xmlでApache Ant IvyがArtifactoryにアーティファクトを公開できません

が、設定は以下のようになります。ジェンキンスに構築する場合

<ibiblio name="test" m2compatible="true" 
    root="http://ip:8888/artifactory/libs-snapshot-local" 
    pattern="[organisation]/[module]/1.0/[artifact]-**1.0**-SNAPSHOT.[ext]"> 
    </ibiblio> 

、私はエラーを打つ:

BUILD FAILED 
C:\.jenkins\workspace\test\build.xml:1381: impossible to publish artifacts for com.test#dummy;[email protected]: java.io.IOException: PUT operation to URL http://ip:8888/artifactory/libs-snapshot-local/com/test/dummy/1.0/project-1.0-SNAPSHOT.apk failed with status code 500: Failed to save resource 'libs-snapshot-local:com/test/dummy/1.0/project-1.0-SNAPSHOT.apk'. 
    at org.apache.ivy.util.url.AbstractURLHandler.validatePutStatusCode(AbstractURLHandler.java:82) 
    at org.apache.ivy.util.url.BasicURLHandler.upload(BasicURLHandler.java:225) 
    at org.apache.ivy.util.url.URLHandlerDispatcher.upload(URLHandlerDispatcher.java:82) 
    at org.apache.ivy.util.FileUtil.copy(FileUtil.java:148) 
    at org.apache.ivy.plugins.repository.url.URLRepository.put(URLRepository.java:84) 
    at org.apache.ivy.plugins.repository.AbstractRepository.put(AbstractRepository.java:130) 
    at org.apache.ivy.plugins.resolver.RepositoryResolver.put(RepositoryResolver.java:234) 
    at org.apache.ivy.plugins.resolver.RepositoryResolver.publish(RepositoryResolver.java:216) 
    at org.apache.ivy.plugins.resolver.ChainResolver.publish(ChainResolver.java:244) 
    at org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:281) 
    at org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:260) 
    at org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:172) 
    at org.apache.ivy.Ivy.publish(Ivy.java:600) 
    at org.apache.ivy.ant.IvyPublish.doExecute(IvyPublish.java:311) 
    at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:277) 
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) 
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
    at org.apache.tools.ant.Task.perform(Task.java:348) 
    at org.apache.tools.ant.Target.execute(Target.java:390) 
    at org.apache.tools.ant.Target.performTasks(Target.java:411) 
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) 
    at org.apache.tools.ant.Project.executeTarget(Project.java:1368) 
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251) 
    at org.apache.tools.ant.Main.runBuild(Main.java:809) 
    at org.apache.tools.ant.Main.startAnt(Main.java:217) 
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) 
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) 

Total time: 9 seconds 
Finished: FAILURE 

しかし、私は強調表示を変更したときに「1.0 '〜' 1 '、Artifactoryに公開されました。それはドット 'のように見える。許可されていません。私がやったことは間違っていますか?

お知らせください。

+0

トークン[改訂版]にしてみてくださいに見えますか? – noamt

+0

私が気づいたもう一つの点は、アーチファクトをおそらくm2互換のリポジトリに展開しているにもかかわらず、展開パスを見直すと、いくつかの理由でMaven 2標準に準拠していないようです。 – noamt

+0

こんにちはnoamt、それはm2標準に準拠していない理由の詳細を教えていただけますか? Artifactoryログには500行のエラーコードが1行だけ含まれており、詳細なエラーはありません。 –

答えて

1

ibiblioで公開できる理由はわかりませんが、依存関係解決のみを処理すると思われます。参照:http://ant.apache.org/ivy/history/latest-milestone/resolver/ibiblio.html

パブリッシュ処理するためのURLリゾルバを必要とし、パターンを定義し、適切 http://ant.apache.org/ivy/history/latest-milestone/resolver/url.html

例えば

<url name="test" m2compatible="true" 
    <ivy pattern="http://ip:8888/artifactory/libs-snapshot-local/[organisation]/[module]/[revision]/ivy-[revision].xml" /> 
    <artifact pattern="http://ip:8888/artifactory/libs-snapshot-local/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> 
</url> 

は、あなたがたバージョンをハードコードのように、多分あなたはArtifactoryのログにエラー/例外が含まれているかどうかを確認し、それらを投稿することができます

関連する問題