代码之家  ›  专栏  ›  技术社区  ›  dogbane

蚂蚁常春藤依赖解析

  •  2
  • dogbane  · 技术社区  · 14 年前

    我有以下依赖关系:

    <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文件中指定的解析程序列表,但是这个文件是跨其他应用程序共享的,所以我无法更改它。

    2 回复  |  直到 14 年前
        1
  •  2
  •   dogbane    14 年前

    我想起来了:

    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>
    
        2
  •  0
  •   John Engelman    14 年前

    我没有完全按照你在这里所说的去做。dependency语句应该查看如何在foo.bar ivy.xml中定义“运行时”配置。这就是它声明要在存储库中查看哪个jar文件的地方。

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

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