[
https://issues.apache.org/jira/browse/IVY-1213?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maarten Coene resolved IVY-1213.
--------------------------------
Resolution: Fixed
Fix Version/s: trunk
Assignee: Maarten Coene
I've committed a fix in SVN trunk that should solve the problem. Thanks for
reporting.
> extends ignores defaultconfmapping/defaultconf/confmappingoverride attributes
> from parent's configurations and dependencies tags
> --------------------------------------------------------------------------------------------------------------------------------
>
> Key: IVY-1213
> URL: https://issues.apache.org/jira/browse/IVY-1213
> Project: Ivy
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.2.0-RC1
> Reporter: Kay Röpke
> Assignee: Maarten Coene
> Fix For: trunk
>
>
> Using a parent ivy module with a configurations tag such as
> {code:xml}
> <ivy-module version="2.2"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
> xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
> <info
> organisation="com.foo"
> module="parent"
> status="integration" />
>
> <configurations
> defaultconfmapping="compile->compile(*),master(*);runtime->runtime(*);test->runtime(*),master(*)">
> <conf name="default" visibility="public" description="runtime
> dependencies and master artifact can be used with this conf"
> extends="runtime,master"/>
> <conf name="master" visibility="public" description="contains only
> the artifact published by this module itself, with no transitive
> dependencies"/>
> <conf name="compile" visibility="public" description="this is the
> default scope, used if none is specified. Compile dependencies are available
> in all classpaths."/>
> <conf name="provided" visibility="public" description="this is much
> like compile, but indicates you expect the JDK or a container to provide it.
> It is only available on the compilation classpath, and is not transitive."/>
> <conf name="runtime" visibility="public" description="this scope
> indicates that the dependency is not required for compilation, but is for
> execution. It is in the runtime and test classpaths, but not the compile
> classpath." extends="compile"/>
> <conf name="test" visibility="private" description="this scope
> indicates that the dependency is not required for normal use of the
> application, and is only available for the test compilation and execution
> phases." extends="runtime"/>
> <conf name="system" visibility="public" description="this scope is
> similar to provided except that you have to provide the JAR which contains it
> explicitly. The artifact is always available and is not looked up in a
> repository."/>
> <conf name="sources" visibility="public" description="this
> configuration contains the source artifact of this module, if any."/>
> <conf name="javadoc" visibility="public" description="this
> configuration contains the javadoc artifact of this module, if any."/>
> <conf name="optional" visibility="public" description="contains all
> optional dependencies"/>
> </configurations>
> <publications />
> <dependencies>
> <dependency organisation="junit" module="junit" revision="4.8.2"
> conf="test" />
> </dependencies>
> </ivy-module>
> {code}
> and later referring to that parent with an extends clause
> {code:xml}
> <ivy-module version="2.2"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
> xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
> <info
> organisation="com.foo"
> module="module1"
> status="integration">
> <extends organisation="com.mysql.etools" module="etools-base"
> revision="1.0.0+" />
> </info>
> <configurations />
> <publications><!-- omitted for brevity --></publications>
> <dependencies>
> <dependency organisation="com.google.collections"
> module="google-collections" revision="1.0" conf="compile" />
> </dependencies>
> </ivy-module>
> {code}
> leads to the google-collections dependency not being retrieved, because the
> merged ivy module descriptor does not inherit the defaultconfmapping from its
> parent.
> Adding
> {noformat}defaultconfmapping="compile->compile(*),master(*);runtime->runtime(*);test->runtime(*),master(*)"{noformat}
> to the _child_ module's configurations tags makes it work.
> Looking at XmlModuleDescriptorParser seems to support the fact that it does
> not merge tag attributes at all.
> Needless to say, this is really hard to find when refactoring modules to use
> extends.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira