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