How to create an Ivy dependency for a jar inside a zip archive?

29 Views Asked by At

I'm converting a project from Java 8 to Java 11 (a future conversion to Java 17 or later is deep in the backlog). Some components depend on jaxb and jaxws, which I have learned were removed.

Thanks to quite a few other articles I have learned to add the jaxb and jaxws dependencies explicitly. Now I have come across an odd case.

I have one module that uses package javax.jws and class javax.jws.WebService. My development environment has jaxws-ri.zip version 2.3.6. This contains jaxws-rt.jar. Our repo also has jaxws-rt version 2.1.7, which I am already including in the dependency list.

I have the following snippets in the module's ivy.xml file:

<dependency org="com.sun.xml.ws" name="jaxws-rt" rev="2.1.7" transitive="false" />
<dependency org="com.sun.xml.ws" name="jaxws-ri" rev="2.3.6">
  <artifact name="jaxws-ri" type="zip" />
</dependency>

jaxws-ri.zip extracts at compile time into the module subdirectory dependency/java/jaxws-ri/jaxws-ri. The lib directory then contains jaxws-rt.jar. I was able to use this version of the jar to pre-compile generated Java classes. Now I need to use this version from the zip archive instead of the repository to compile the module.

So. How do I build this module using this version of jaxws-rt.jar (or if needed other jars from the zip archive) instead of the repo's version?

0

There are 0 best solutions below