You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-user@ant.apache.org by Mark Himsley <ma...@gmail.com> on 2014/04/15 17:45:43 UTC
endorsed library resolution - jaxb example
Hi,
The summary of the problem I'm trying to work around is that I need jars
retrieved for 'jaxb-api' to land in an 'endorsed' folder but I would prefer
it wasn't also in the usual 'lib' folder.
I'm reactively new to Ivy, so I'm probably missing something obvious.
To give more information: below is by ivy.xml file.
'jaxb-impl' itself has a dependency on 'jaxb-api' - but 'jaxb-api' needs to
be an endorsed library with Java 1.6 (sadly, my current build target)
When I <ivy:retrieve conf="endorsed" ...> I get 'jaxb-api' - which is
perfect.
When I <ivy:retrieve conf="default" ...> I get 'jaxb-impl' and all of its
dependants - which also includes jaxb-api.
Is is possible to create a configuration which is the set of 'jaxb-impl'
minus 'jaxb-api' ?
<?xml version="1.0" encoding="UTF-8"?>
<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="BroadcastSystemsDevelopment"
module="jupiter-XMLInterface"/>
<configurations
defaultconf="default">
<conf
name="default"
description="the default libraries"/>
<conf
name="endorsed"
description="endorsed libraries"/>
</configurations>
<publications>
<artifact
name="jupiter-XMLInterface"
type="jar"/>
<artifact
name="jupiter-XMLInterface"
type="pom"/>
</publications>
<dependencies>
<dependency
org="com.sun.xml.bind"
name="jaxb-impl"
rev="2.2.7"/>
<dependency
org="javax.xml.bind"
name="jaxb-api"
rev="2.2.7"
conf="endorsed->default"/>
</dependencies>
</ivy-module>
Thanks :-)
--
Mark Himsley
Re: endorsed library resolution - jaxb example
Posted by Mark Himsley <ma...@gmail.com>.
Marc,
Thank you.
I had missed the common 'exclude' child element from the "post resolve
tasks" page. That is exactly the 'something obvious' that I was missing.
I should have mentioned that the other libraries are all coming from the
default maven 2 repository, so I don't believe I could have used your
alternative solution - but your comment will influence how I build my own
decencies.
Thanks again.
On 16 April 2014 07:01, Marc De Boeck <md...@gmail.com> wrote:
> You could add in the ivy.xml of jupiter-XMLInterface an exclude statement
> inside the dependency for jaxb-impl:
>
> <dependency org="com.sun.xml.bind" name="jaxb-impl" rev="2.2.7">
> <exclude module="jaxb-api" />
> </dependency>
>
> Alternatively, you can also change the ivy.xml of jaxb-impl and use the
> "endorsed" conf there in the same way as you do in jupiter-XMLInterface.
>
> Marc
>
>
> 2014-04-15 17:45 GMT+02:00 Mark Himsley <ma...@gmail.com>:
>
> > Hi,
> >
> > The summary of the problem I'm trying to work around is that I need jars
> > retrieved for 'jaxb-api' to land in an 'endorsed' folder but I would
> prefer
> > it wasn't also in the usual 'lib' folder.
> > I'm reactively new to Ivy, so I'm probably missing something obvious.
> >
> > To give more information: below is by ivy.xml file.
> >
> > 'jaxb-impl' itself has a dependency on 'jaxb-api' - but 'jaxb-api' needs
> to
> > be an endorsed library with Java 1.6 (sadly, my current build target)
> >
> > When I <ivy:retrieve conf="endorsed" ...> I get 'jaxb-api' - which is
> > perfect.
> > When I <ivy:retrieve conf="default" ...> I get 'jaxb-impl' and all of
> its
> > dependants - which also includes jaxb-api.
> >
> > Is is possible to create a configuration which is the set of 'jaxb-impl'
> > minus 'jaxb-api' ?
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <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="BroadcastSystemsDevelopment"
> > module="jupiter-XMLInterface"/>
> > <configurations
> > defaultconf="default">
> > <conf
> > name="default"
> > description="the default libraries"/>
> > <conf
> > name="endorsed"
> > description="endorsed libraries"/>
> > </configurations>
> > <publications>
> > <artifact
> > name="jupiter-XMLInterface"
> > type="jar"/>
> > <artifact
> > name="jupiter-XMLInterface"
> > type="pom"/>
> > </publications>
> > <dependencies>
> > <dependency
> > org="com.sun.xml.bind"
> > name="jaxb-impl"
> > rev="2.2.7"/>
> > <dependency
> > org="javax.xml.bind"
> > name="jaxb-api"
> > rev="2.2.7"
> > conf="endorsed->default"/>
> > </dependencies>
> > </ivy-module>
> >
> >
> > Thanks :-)
> >
> >
> > --
> > Mark Himsley
> >
>
--
Mark Himsley
Re: endorsed library resolution - jaxb example
Posted by Marc De Boeck <md...@gmail.com>.
You could add in the ivy.xml of jupiter-XMLInterface an exclude statement
inside the dependency for jaxb-impl:
<dependency org="com.sun.xml.bind" name="jaxb-impl" rev="2.2.7">
<exclude module="jaxb-api" />
</dependency>
Alternatively, you can also change the ivy.xml of jaxb-impl and use the
"endorsed" conf there in the same way as you do in jupiter-XMLInterface.
Marc
2014-04-15 17:45 GMT+02:00 Mark Himsley <ma...@gmail.com>:
> Hi,
>
> The summary of the problem I'm trying to work around is that I need jars
> retrieved for 'jaxb-api' to land in an 'endorsed' folder but I would prefer
> it wasn't also in the usual 'lib' folder.
> I'm reactively new to Ivy, so I'm probably missing something obvious.
>
> To give more information: below is by ivy.xml file.
>
> 'jaxb-impl' itself has a dependency on 'jaxb-api' - but 'jaxb-api' needs to
> be an endorsed library with Java 1.6 (sadly, my current build target)
>
> When I <ivy:retrieve conf="endorsed" ...> I get 'jaxb-api' - which is
> perfect.
> When I <ivy:retrieve conf="default" ...> I get 'jaxb-impl' and all of its
> dependants - which also includes jaxb-api.
>
> Is is possible to create a configuration which is the set of 'jaxb-impl'
> minus 'jaxb-api' ?
>
> <?xml version="1.0" encoding="UTF-8"?>
> <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="BroadcastSystemsDevelopment"
> module="jupiter-XMLInterface"/>
> <configurations
> defaultconf="default">
> <conf
> name="default"
> description="the default libraries"/>
> <conf
> name="endorsed"
> description="endorsed libraries"/>
> </configurations>
> <publications>
> <artifact
> name="jupiter-XMLInterface"
> type="jar"/>
> <artifact
> name="jupiter-XMLInterface"
> type="pom"/>
> </publications>
> <dependencies>
> <dependency
> org="com.sun.xml.bind"
> name="jaxb-impl"
> rev="2.2.7"/>
> <dependency
> org="javax.xml.bind"
> name="jaxb-api"
> rev="2.2.7"
> conf="endorsed->default"/>
> </dependencies>
> </ivy-module>
>
>
> Thanks :-)
>
>
> --
> Mark Himsley
>