0
我在我的項目使用Ant +常春藤+ Artifactory的,我嘗試發佈我自己的倉庫,而我的build.xml是這樣的:Artifactory的+常春藤缺少神器org.apache
<?xml version="1.0" encoding="UTF-8"?>
<project name="hello-world-ant" basedir="." default="main" xmlns:ivy="antlib:org.apache.ivy.ant">
<!-- Ant properties -->
<property name="src.dir" value="src"/>
<property name="lib.dir" value="lib"/>
<property name="build.dir" value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="${build.dir}/jar"/>
<property name="main-class" value="com.eureka.HelloWorld"/>
<ivy:settings file="./ivysettings.xml" />
<target name="clean">
<delete dir="${build.dir}"/>
<delete dir="${lib.dir}"/>
</target>
<target name="resolve">
<ivy:retrieve/>
</target>
<target name="report" depends="resolve">
<ivy:report todir="${build.dir}"/>
</target>
<target name="compile" depends="report">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>
</target>
<target name="ivy">
<ivy:resolve />
<!-- Possible ivy:report, ivy:retrieve and other
elements for managing your dependencies go here -->
<ivy:deliver conf="*(public)"/>
</target>
<target name="publish" depends="jar">
<ivy:retrieve/>
<ivy:publish resolver="publish" overwrite="true" artifactspattern="${jar.dir}/[artifact].[ext]" />
</target>
<target name="clean-build" depends="clean,jar"/>
<target name="main" depends="clean,run"/>
</project>
和我ivysettings .XML是這樣的:
<credentials host="localhost" realm="Artifactory Realm" username="admin" passwd="password" />
<resolvers>
<chain name="main">
<ibiblio name="artifactory" m2compatible="true" root="http://localhost:8081/artifactory/libs-releases" />
<url name="publish">
<!-- You can use m2compatible="true" instead of specifying your own pattern -->
<ivy pattern="http://localhost:8081/artifactory/test-snapshot-local/[organization]/[module]/[revision]/ivy-[revision].xml" />
<artifact pattern="http://localhost:8081/artifactory/test-snapshot-local/[organization]/[module]/[revision]/[artifact].[ext]"/>
</url>
</chain>
當我做ant
是沒有問題的,但是當我做ant publish
這說明了什麼問題:
BUILD FAILED
/Users/stage/Documents/workspace/test_ivy/build.xml:56: impossible to publish artifacts for org.apache#hello-ivy;[email protected]: java.io.IOException: missing artifact org.apache#hello-ivy;20140401102841!hello-ivy.jar
我在使用這些工具的新的,我想知道這裏發生了什麼......非常感謝〜
這真的是我需要的。感謝您寶貴的解決方案。 –