java - Hudson plug-in not publishing all artifacts to Artifactory -
i've got small java project setup build continuously through hudson server. i'd publish build artifacts artifactory server post-build step so, naturally, i'm using hudson-artifactory plug-in facilitate this. local publish appears work fine - publishes 2 artifacts (both .jar files) , resolved ivy.xml file expected. when request build on hudson server, however, 1 of 2 artifacts gets published.
the build creates following artifacts:
ftpsvc.jar ftpsvc-lib.jar
my ivy.xml file looks this:
<?xml version="1.0" encoding="iso-8859-1"?> <ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="http://ant.apache.org/ivy/schemas/ivy.xsd"> <info organisation="esf" status="integration" module="ftpsvc" revision="snapshot" /> <publications> <artifact name="ftpsvc" ext="jar"/> <artifact name="ftpsvc-lib" ext="jar" type="lib" /> </publications> <!--list dependencies of project--> <dependencies> <dependency org="commons-net" name="commons-net" rev="1.3.0" /> </dependencies> </ivy-module>
the 2 artifacts called out in <publications>
section. build target in build.xml file looks this:
<target name="publish_local" description="publish artifacts locally"> <echo>organisation: ${ivy.organisation}</echo> <echo>module: ${ivy.module}</echo> <echo>status: ${ivy.status}</echo> <echo>revision: ${ivy.revision}</echo> <echo>local dir: ${ivy.default.ivy.user.dir}</echo> <ivy:publish resolver="local" update="true" verwrite="true" srcivypattern="${bundle.jar.dir}/ivy.xml" artifactspattern="${bundle.jar.dir}/[artifact].[ext]" /> </target>
the artifactspattern
grabs defined artifacts build directory - nothing fancy going on here. lastly, resolver chain in ivysettings.xml file looks (server names changed protect innocent):
<resolvers> <chain name="main"> <ibiblio name="main" m2compatible="true" root="http://my.server.employer.com:8080/artifactory/repo" /> <filesystem name="local"> <ivy pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[revision]/ivy-[revision].xml" /> <artifact pattern="${ivy.default.ivy.user.dir}/local/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> </filesystem> </chain> </resolvers>
it's rather routine stuff and, mentioned above, local publish works fine. here's peek @ console output when build through eclipse:
publish_local: [echo] organisation: esf [echo] module: ftpsvc [echo] status: integration [echo] revision: snapshot [echo] local dir: c:\users\myusername\.ivy2 [ivy:publish] :: publishing :: esf#ftpsvc [ivy:publish] published ftpsvc c:\users\myusername\.ivy2/local/esf/ftpsvc/snapshot/ftpsvc-snapshot.jar [ivy:publish] published ftpsvc-lib c:\users\myusername\.ivy2/local/esf/ftpsvc/snapshot/ftpsvc-lib-snapshot.jar [ivy:publish] published ivy c:\users\myusername\.ivy2/local/esf/ftpsvc/snapshot/ivy-snapshot.xml
both .jar files , resolved ivy.xml file published expected. on hudson server, i've got artifactory configuration settings configured thusly (again, details have been changed obscure true superhero identity):
artifactory server: http://my.server.employer.com:8080/artifactory
target repository: target-repository
ivy pattern: [organisation]/[module]/[revision]ivy-[revision].xml
artifact pattern: "[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
as can see, ivy , artifact patterns exactly same patterns in local resolver ivysettings.xml file. thus, when build run on hudson server, i'd expect exact same artifacts published artifactory server.
let's take @ console output latest build on hudson server:
publish_local: [echo] organisation: esf [echo] module: ftpsvc [echo] status: integration [echo] revision: snapshot [echo] local dir: /usr/share/tomcat6/.ivy2 [ivy:publish] :: publishing :: esf#ftpsvc collecting module information module: ftpsvc module location: /usr/share/tomcat6/.hudson/jobs/ftpsvc-ivy/workspace/trunk/out/jars/ftpsvc.jar [ivy:publish] published ftpsvc /usr/share/tomcat6/.ivy2/local/esf/ftpsvc/snapshot/ftpsvc-snapshot.jar collecting module information module: ftpsvc module location: /usr/share/tomcat6/.hudson/jobs/ftpsvc-ivy/workspace/trunk/out/jars/ftpsvc-lib.jar [ivy:publish] published ftpsvc-lib /usr/share/tomcat6/.ivy2/local/esf/ftpsvc/snapshot/ftpsvc-lib-snapshot.jar collecting module information module: ftpsvc module location: /tmp/ivy2450884590736960955.xml [ivy:publish] published ivy /usr/share/tomcat6/.ivy2/local/esf/ftpsvc/snapshot/ivy-snapshot.xml build finished triggered deploying artifact: http://my.server.employer.com:8080/artifactory/target-repository/esf/ftpsvc/snapshot/ftpsvc-snapshot.jar deploying artifact: http://my.server.employer.com:8080/artifactory/target-repository/esf/ftpsvc/snapshot/ftpsvc-snapshot.xml deploying build info to: http://my.server.employer.com.com:8080/artifactory/api/build
dubya' tee eff!? once again, local publish appears work fine, publishing both jars , ivy.xml file local/esf/ftpsvc/snapshot/ directory on hudson server. artifactory plug-in, on other hand, gets totally wrong. not fail publish 1 of 2 jars, renames ivy.xml file incorrectly.
are there hudson/ivy/artifactory experts out there can shed light on what's going on here? i've got multiple projects exhibiting exact same behavior. , assistance in resolving problem appreciated.
hey, haven't used plugin, try removing dash name ftpsvc-lib
and/or removing type="lib"
artifact
element, see happens.
Comments
Post a Comment