gpt4 book ai didi

ant - 尽管映射,Ivy makepom 将所有依赖项标记为可选

转载 作者:行者123 更新时间:2023-12-04 04:49:19 25 4
gpt4 key购买 nike

鉴于:

<dependency org="foo" name="bar" />

并且没有配置,遵循 ant 片段:
<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 并打印“默认”。
如果我将映射更改为 conf="*"然后它可以工作,但显然不是最理想的。

是否可以映射未​​指定的默认配置,或者我是否需要在 ivy.xml 中的所有依赖项上设置 conf="default"?

最佳答案

可选的依赖映射似乎是默认行为。

Ivy 不限于固定数量的范围。虽然 ivy 配置更加灵活,但您不能假设每个配置都用于填充标准项目类路径......

最安全的做法是提供每个 ivy 配置到 Maven 中匹配范围的显式映射。在实践中,我建议创建一个 ivy 配置来模拟每个 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>

笔记:
  • 您省略了 deliver Ivy 任务。必须确保解决 ivy 动态修订并且 ivy 模块具有设置为预期发布修订号的修订标签。 (与 Maven 不同,您不需要编辑 ivy 文件来增加模块版本)。
  • 关于ant - 尽管映射,Ivy makepom 将所有依赖项标记为可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17677037/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com