【问题标题】:Transitive dependencies not resolved with <filesystem> resolver<filesystem> 解析器未解决传递依赖关系
【发布时间】:2016-11-11 07:30:35
【问题描述】:

我将 ivy 2.4.0 与 ant 1.9.2 一起使用,我希望能够将工件推送到本地存储库并检索它们以及它们的传递依赖项。我的解析器看起来像:

<resolvers>
    <filesystem name="local" checkmodified="true" m2compatible="true">
      <ivy pattern="/something/.ivy/[orgPath]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]"/>
      <artifact pattern="/something/.ivy/[orgPath]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]" />
    </filesystem>

    <chain name="main" returnFirst="true">
      <resolver ref="local" />
      <ibiblio name="artifactory" 
               checkmodified="true" 
               changingMatcher="regexp" 
               changingPattern=".*-SNAPSHOT.*" 
               m2compatible="true" 
               usepoms="true"
               root="url to artifactory" />
    </chain>
  </resolvers>

使用以下方式发布工件(pom 和 jar 都是出版物):

<ivy:deliver deliverpattern="/my project/ivy.xml"/>
<ivy:makepom ivyfile="ivy.xml" pomfile="pom.xml"/>
<ivy:publish resolver="local or artifactory" overwrite="true" publishivy="false">
   <artifacts pattern="/my project/[artifact](-[classifier]).[ext]" />
</ivy:publish>

我可以将工件发布到我的 local 存储库,但是当我获取它时,它的传递依赖项不会被检索到。

我也尝试发布 ivy 文件,但这并没有改变任何东西,这让我发疯,因为如果我从 Artifactory 存储库发布/获取,一切都会按预期工作。可能缺少什么或配置不当?

【问题讨论】:

    标签: ant ivy


    【解决方案1】:

    我建议将 Artifactory 配置为默认存储库,并使用 modules 指令告诉 ivy 使用本地存储库。

    <ivysettings>
        <settings defaultResolver="artifactory"/>
        <resolvers>
            <ibiblio name="artifactory" m2compatible="true" root="http://path/to/artifactory/repo"/>
            <filesystem name="local">
                <artifact pattern="${ivy.settings.dir}/lib/[artifact]-[revision].[ext]"/>
            </filesystem>
        </resolvers>
        <modules>
            <module organisation="myorg1" resolver="local"/>
            <module organisation="myorg2" name="module1" resolver="local"/>
            <module organisation="myorg2" name="module2" resolver="local"/>
        </modules>
    </ivysettings>
    

    【讨论】:

    • 这是个好主意,谢谢。但是,我的问题更多是在本地 repo 配置上:当在我的本地 repo 上发布工件时,我无法获得传递依赖。布局看起来和 artifactory 的一样……
    • @Jerome 仍然不起作用?奇怪...问一个明显的问题,您是否关闭了传递依赖项?不太明显,您使用的是 ivy 配置吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    相关资源
    最近更新 更多