假设:
<dependency org="foo" name="bar" />
并且没有配置,在ant snippet之后:
<echo>${ivy.configuration}</echo>
<ivy:makepom ivyfile="${build.dir}/ivy.xml" pomfile="${build.dir}/${ivy.module}.pom">
<mapping conf="default" scope="compile" />
</ivy:makepom>
使用foo.bar上的可选依赖项生成pom并打印“default”。
如果我将映射更改为conf="*"
,那么它的工作原理是,但它显然是次优的。
是否可以映射未指定的默认配置,还是需要在ivy.xml中的所有依赖项上设置conf =“default”?
答案 0 :(得分:3)
可选的依赖关系映射似乎是默认行为。
常春藤并不局限于固定数量的范围。虽然常春藤配置更加灵活,但您不能假设每个配置都用于填充标准项目类路径....
最安全的做法是提供每个常春藤配置到Maven中匹配范围的显式映射。在实践中,我建议创建一个常春藤配置来模拟每个Maven范围(无论是否使用它)。
<target name="generate-pom" depends="resolve" description="Generate Maven POM">
<ivy:deliver deliverpattern="${build.dir}/ivy.xml" pubrevision="${project.version}"/>
<ivy:makepom ivyfile="${build.dir}/ivy.xml" pomfile="${build.dir}/${ivy.module}.pom">
<mapping conf="compile" scope="compile" />
<mapping conf="runtime" scope="runtime" />
<mapping conf="test" scope="test" />
</ivy:makepom>
</target>
注意:
答案 1 :(得分:0)
似乎映射“*”是无害的。任何其他特定映射仍然优先。