0

I have vendor jars from IBM (4 jars starting with com.ibm.mq*) I am trying to just publish them to my local ivy cache to use in several projects.

IVY.XML

<ivy-module version="2.0">
  <info organisation="com.ibm" module="com.ibm.mq" />
  <publications>
    <artifact name="com.ibm.mq" type="jar" ext="jar"/>
    <artifact name="com.ibm.mq" type="javadoc" ext="jar"/>
    <artifact name="com.ibm.mq" type="source" ext="jar"/>
    <artifact name="com.ibm.mq.commonservices" type="jar" ext="jar"/>
    <artifact name="com.ibm.mq.commonservices" type="javadoc" ext="jar"/>
    <artifact name="com.ibm.mq.commonservices" type="source" ext="jar"/>
    <artifact name="com.ibm.mq.headers" type="jar" ext="jar"/>
    <artifact name="com.ibm.mq.headers" type="javadoc" ext="jar"/>
    <artifact name="com.ibm.mq.headers" type="source" ext="jar"/>
    <artifact name="com.ibm.mq.jmqi" type="jar" ext="jar"/>
    <artifact name="com.ibm.mq.jmqi" type="javadoc" ext="jar"/>
    <artifact name="com.ibm.mq.jmqi" type="source" ext="jar"/>
  </publications>
  <dependencies>
  </dependencies>
</ivy-module>

And my jars are named:

laptop: ls jars |  sed 's/^/    /' 
com.ibm.mq-7.5.0.2.jar
com.ibm.mq.commonservices-7.5.0.2.jar
com.ibm.mq.headers-7.5.0.2.jar
com.ibm.mq.jmqi-7.5.0.2.jar

But the publish fails with:

Buildfile: C:\Users\alan\Workspace-Eclipse\IBM-MQ\build.xml

publish:
[ivy:resolve] :: Ivy 2.2.0 - 20100923230623 :: http://ant.apache.org/ivy/ ::
[ivy:resolve] :: loading settings :: url = jar:file:/C:/Users/alan/.ant/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
[ivy:resolve] :: resolving dependencies :: com.ibm#com.ibm.mq;working@DTC26009BA481FC
[ivy:resolve]       confs: [default]
[ivy:resolve] :: resolution report :: resolve 52ms :: artifacts dl 0ms
    ---------------------------------------------------------------------
    |                  |            modules            ||   artifacts   |
    |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
    ---------------------------------------------------------------------
    |      default     |   0   |   0   |   0   |   0   ||   0   |   0   |
    ---------------------------------------------------------------------
[ivy:publish] :: publishing :: com.ibm#com.ibm.mq

BUILD FAILED
C:\Users\jurgenaw\Workspace-Eclipse\IBM-MQ\build.xml:4: impossible to publish artifacts for com.ibm#com.ibm.mq;working@DTC26009BA481FC: java.io.IOException: missing artifact com.ibm#mq;7.5.0.2!mq.jar
    at org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:225)

my build.xml file:

<project name="localrepository" default="publish" xmlns:ivy="antlib:org.apache.ivy.ant">
  <target name="publish" description="Publish ibm.mq jars into LOCAL repository">
    <ivy:resolve/>
    <ivy:publish pubrevision="7.5.0.2" status="release" resolver="local" overwrite="true" >
      <!-- artifacts pattern="[artifact]-[type].[ext]"/ -->
      <artifacts pattern="[type]s/[artifact]-[revision].[ext]" />
    </ivy:publish>
  </target>
  <target name="cleancache" description="removes home/user/.ivy2 !">
    <ivy:cleancache />
  </target>
  <target name="resolve" description="resolve">
    <ivy:resolve />
  </target>
  <target name="report" description="dependancy report">
    <ivy:report organisation="com.ibm" module="com.ibm.mq" />
  </target>
</project>
Alan Jurgensen
  • 813
  • 11
  • 20
  • OK it works after I removed ivys directory (where it was pulling out some deps from prior attempts at this!) – Alan Jurgensen Jan 20 '15 at 17:43
  • Just a note. The IBM license states that you must install MQ (either MC75 client supportpac or the product) and use the libraries provided in the install from their directory. You're not permitted to move them around. IBM won't support your configuration either if you have a problem. – Tim McCormick Jan 21 '15 at 12:05

1 Answers1

0

Alternatively you could use a filesystem resolver and avoid the need to publish the jars.

Community
  • 1
  • 1
Mark O'Connor
  • 76,015
  • 10
  • 139
  • 185