How am I to know which configurations are available for a particular dependency?
I understand these are common configurations: default,master,compile,provided,test,system,sources,javadoc,optional,runtime
But some dependencies do not have all of these defined, and others define other custom configurations. I don't see any mention of the available configurations on springsource or maven repo.
Below is my embarrassingly hacked-together ivy.xml. Notice that I define org.springframework.spring-library conf as "runtime". This fails because org.springframework.spring-library does not have a "runtime" conf.
<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="com.myapp" module="MyAppName" revision="1.0"/>
<configurations>
<conf name="compile" visibility="public" description="Dependencies needed for compile"/>
<conf name="runtime" visibility="public" extends="compile" description="Dependencies needed for runtime"/>
<conf name="test" visibility="private" description="Test dependencies"/>
</configurations>
<dependencies>
<dependency org="org.springframework" name="org.springframework.spring-library" rev="3.1.0.RELEASE" conf="runtime"/>
<dependency org="org.springframework.security" name="spring-security-web" rev="3.1.0.RELEASE" transitive="false" conf="*"/>
<dependency org="org.springframework.security" name="spring-security-config" rev="3.1.0.RELEASE" transitive="false" conf="*"/>
<dependency org="org.springframework.security" name="spring-security-core" rev="3.1.0.RELEASE" transitive="false" conf="*"/>
<dependency org="org.codehaus.jackson" name="com.springsource.org.codehaus.jackson" rev="1.4.3" conf="runtime->*"/>
<dependency org="org.codehaus.jackson" name="com.springsource.org.codehaus.jackson.mapper" rev="1.4.3" conf="runtime->*"/>
<dependency org="org.apache.httpcomponents" name="com.springsource.org.apache.httpcomponents.httpclient" rev="4.1.1" conf="runtime->*" />
<dependency org="org.aspectj" name="org.aspectj-library" rev="1.6.5.RELEASE" conf="runtime,compile->runtime(default)"/>
<dependency org="net.sourceforge.cglib" name="com.springsource.net.sf.cglib" rev="2.2.0" conf="compile->*"/>
<dependency org="log4j" name="log4j" rev="1.2.14" conf="runtime->*"/>
<dependency org="joda-time" name="joda-time" rev="2.0" conf="runtime,compile->runtime(default)"/>
<exclude type="license" ext="txt"/>
<exclude type="notice" ext="txt"/>
<exclude org="javax.servlet" conf="runtime"/>
<exclude org="javax.el" conf="runtime"/>
<exclude org="javax.faces" conf="runtime"/>
<exclude org="javax.portlet" conf="runtime"/>
<exclude org="javax.xml.rpc" conf="runtime"/>
<exclude org="javax.xml.soap" conf="runtime"/>
<exclude org="javax.xml.ws" conf="runtime"/>
<exclude org="commons-logging" conf="runtime"/>
</dependencies>
</ivy-module>
org.springframework.spring-library
does appear to have a runtime
configuration. Specifically the configurations for spring-library are:
<configurations>
<conf name="compile" visibility="public" extends="aspects" description="Maven compile dependencies"/>
<conf name="optional" visibility="public" extends="compile" description="Maven optional dependencies"/>
<conf name="provided" visibility="public" description="Maven provided dependencies"/>
<conf name="dm-server-provided" visibility="public" description="Maven provided dependencies that already exist in the platform"/>
<conf name="runtime" visibility="public" extends="compile" description="Runtime dependencies"/>
<conf name="test" visibility="private" description="Test dependencies"/>
<conf name="aspects" visibility="private" description="Aspects to be woven"/>
<conf name="external" visibility="private" description="External candidates to be woven"/>
<conf name="additional" visibility="private" description="Additional candidates to be included in the PAR"/>
</configurations>
To get this list, I added the following dependency and performed a resolve (note: no conf
specfied)
<dependency org="org.springframework" name="org.springframework.spring-library" rev="3.1.0.RELEASE"/>
I then had a look at the ivy file for org.springframework.spring-library
in my cache (normally found at ${user.home}/.ivy2/cache/org.springframework/org.springframework.spring-library/ivy-3.1.0.RELEASE.xml
).
There may be a easier way to get the list of configurations, but the above does the trick for me.
Since the SpringSource EBR provides ivy files, you can get the configurations directly from http://repository.springsource.com/ivy/libraries/release/org.springframework/org.springframework.spring-library/3.1.0.RELEASE/ivy-3.1.0.RELEASE.xml, but IMO figuring out the correct url is more effort that the technique used above.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With