OK I found the work-around.... although I do not think this should be
necessary (at least according to the docs)

    <artifact:remoteRepository id="local.release" url="http://
_____/nexus/content/repositories/local">
      <releases enabled="true"/>
      <snapshots enabled="false"/>
    </artifact:remoteRepository>
    <artifact:remoteRepository id="local.snapshot" url="http://
_____/nexus/content/repositories/local-snapshots">
      <releases enabled="false"/>
      <snapshots enabled="true"/>
    </artifact:remoteRepository>
    <artifact:pom id="maven.project" file="pom.xml"/>
    <artifact:deploy file="${build.dir}/${finalName}">
      <remoteRepository refid="local.release"/>
      <remoteRepository refid="local.snapshot"/>
      <pom refid="maven.project"/>
    </artifact:deploy>

But still at least it works now!

2009/3/12 Stephen Connolly <[email protected]>

> So we have this legacy build that uses ANT.
>
> Normally I would just convert the build to Maven... but this one is too
> crufty for me... and time is too tight.
>
> So enter maven-ant-tasks...
>
> I'm having problems deploying to our internal repository (which is using
> nexus)
>
> To try and resolve this I created a stripped down ant build like so:
>
> <project name="ant-mvn-deploy-test" basedir="."
> xmlns:artifact="urn:maven-artifact-ant">
>
>   <property name="groupId" value="local.test"/>
>   <property name="artifactId" value="ant-mvn-deploy-test"/>
>   <property name="version" value="1.0-SNAPSHOT"/>
>
>   <property name="src.dir" value="${basedir}/src/main/java"/>
>   <property name="build.dir" value="${basedir}/target"/>
>   <property name="classes.dir" value="${build.dir}/classes"/>
>   <property name="finalName" value="${artifactId}-${version}.jar"/>
>
>   <path id="maven-ant-tasks.classpath" path="lib/maven-ant-tasks-2.0.9.jar"
> />
>   <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
>            uri="urn:maven-artifact-ant"
>            classpathref="maven-ant-tasks.classpath" />
>
>   <target name="clean">
>     <delete dir="${build.dir}"/>
>   </target>
>
>   <target name="compile">
>     <mkdir dir="${classes.dir}"/>
>     <javac srcdir="${src.dir}" destdir="${classes.dir}"/>
>   </target>
>
>   <target name="package" depends="compile">
>     <jar destfile="${build.dir}/${finalName}" basedir="${classes.dir}">
>       <manifest>
>         <attribute name="Main-Class" value="HelloWorld"/>
>       </manifest>
>     </jar>
>   </target>
>
>   <target name="install" depends="package">
>     <artifact:pom id="maven.project" file="pom.xml"/>
>     <artifact:install file="${build.dir}/${finalName}">
>       <pom refid="maven.project"/>
>     </artifact:install>
>   </target>
>
>   <target name="deploy" depends="install">
>     <artifact:pom id="maven.project" file="pom.xml"/>
>     <artifact:deploy file="${build.dir}/${finalName}">
>       <pom refid="maven.project"/>
>     </artifact:deploy>
>   </target>
>
> </project>
>
> And I have the pom.xml that this should deploy with like so:
>
> <project>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>local.test</groupId>
>   <artifactId>ant-mvn-deploy-test</artifactId>
>   <version>1.0-SNAPSHOT</version>
>     <distributionManagement>
>         <snapshotRepository>
>             <id>local.snapshot</id>
>             <name>Local snapshot repository</name>
>             <url>${snapshot.deploy.url}</url>
>             <uniqueVersion>false</uniqueVersion>
>         </snapshotRepository>
>         <repository>
>             <id>local</id>
>             <name>Local release repository</name>
>             <url>${release.deploy.url}</url>
>         </repository>
>     </distributionManagement>
> </project>
>
> If I run mvn clean deploy everything works just fine and dandy
>
> If I run ant clean deploy it bombs out with a 401 error code.
>
> [artifact:deploy] Deploying to http://_______/nexus/content/groups/public
> [artifact:deploy] [INFO] Retrieving previous build number from
> local.snapshot
> [artifact:deploy] [INFO] repository metadata for: 'snapshot
> local.test:ant-mvn-deploy-test:1.0-SNAPSHOT' could not be found on
> repository: local.snapshot, so will be created
> [artifact:deploy] Uploading:
> local/test/ant-mvn-deploy-test/1.0-SNAPSHOT/ant-mvn-deploy-test-1.0-SNAPSHOT.jar
> to local.snapshot
> [artifact:deploy] Uploaded 1K
> [artifact:deploy] An error has occurred while processing the Maven artifact
> tasks.
> [artifact:deploy]  Diagnosis:
> [artifact:deploy]
> [artifact:deploy] Error deploying artifact
> 'local.test:ant-mvn-deploy-test:jar': Error deploying artifact: Failed to
> transfer file: 
> http://______/nexus/content/groups/public/local/test/ant-mvn-deploy-test/1.0-SNAPSHOT/ant-mvn-deploy-test-1.0-SNAPSHOT.jar.
> Return code is: 401
>
> BUILD FAILED
>
>
> I've tried adding wagon-http, wagon-webdav, etc. with no luck... anyone
> have any suggestions?
>
> -Stephen
>
>
>
>

Reply via email to