【问题标题】:Ant Ivy dependency resolutionAnt Ivy 依赖解析
【发布时间】:2011-05-14 15:58:24
【问题描述】:

我有以下依赖:

<dependency org="foo" name="bar" rev="1.0" conf="war-runtime->runtime" />

但是,我希望将其解析为的 jar 名为 foo_bar-g.jar。

目前它尝试 foo_bar.jar 失败,因为 jar 不存在。

我可以在依赖项中指定我的 jar 的名称或模式吗?

我在 ivy-settings.xml 文件中指定了一个解析器列表,但该文件在其他应用程序之间共享,因此我无法更改它。

【问题讨论】:

  • 它解析为“foo_bar.jar”而不是 Maven 存储库中 foo.bar-1.0 项目中的“bar-1.0.jar”?在您的本地 Maven 存储库中如何设置?

标签: java ant dependencies ivy


【解决方案1】:

我并没有完全按照此处所述的方式回答您的问题。依赖声明应该查看 foo.bar ivy.xml 中“运行时”配置是如何定义的。这就是它说明要在存储库中查看哪个 jar 文件的地方。

当它得到它时,文件将被复制下来,这取决于你的解析器是如何设置的。通常是 bar-1.0.jar

问题出在哪里?在决议中?还是它正在解析并且本地文件的名称与您想要的不同?

【讨论】:

  • 我希望它解析为不同的名称。目前它正在解析为 foo_bar.jar,但我的文件名为 foo_bar-g.jar。
【解决方案2】:

我想通了:

在ivy_settings.xml 添加自定义解析器:

  <resolvers>    
    <filesystem checkconsistency="false" checkmodified="true" name="foo.bar">
      <artifact pattern="//path/to/foo_bar-g.[ext]"/>
    </filesystem>
  </resolvers>

声明您要将此解析程序用于bar 模块。

  <modules>
    <module name="bar" organisation="foo" resolver="foo.bar"/>
  </modules>

然后在ivy.xml:

<dependency org="foo" name="bar" rev="1.0">
        <artifact name="bar" type="jar" ext="jar" conf="war-runtime->runtime"/>
</dependency>

【讨论】:

    猜你喜欢
    • 2011-12-11
    • 2013-04-16
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 2014-10-15
    • 2013-04-20
    • 2020-01-25
    相关资源
    最近更新 更多