0

我想知道是否有人知道解决常春藤从命令行获取特定包的版本的方法?

我正在寻找类似的东西,说

$ ant resolve com.internal.shared.pkg latest.release

然后会返回,比如说,“1.1.18”

4

2 回答 2

1

是的和不...

这是可能的,但它会占用您大量的肘部油脂。你必须<target>在你的build.xml文件中为它写一个 Ant。

目标将以内联模式使用<ivy:resolve>任务。这意味着你给它组织模块修订,Ivy 会尝试下载它。

从那里,您有几个选择。我看了看,<ivy:report>因为它似乎是生成报告的最简单方法。但是,通过 下载它<ivy:retrieve>并查看您下载的内容可能会更容易。

这是我的<ivy:resolve>样子:

<ivy:resolve
    inline="true"
    organisation="${my.org}"
    module="${my.module}"
    revision="${my.rev}"
    conf="master"
    resolveId="test.me"/>

然后,您可以通过以下方式调用它:

$ ant -Dmy.org=commmons-logging \
    -Dmy.module="commons-logging" \
    -Drev="latest.release" resolve.me

仍然有兴趣这样做吗?

于 2012-12-26T23:32:37.540 回答
0

有一个 ivy 任务可用,它可以根据已解析的工件属性创建属性:

<project name="demo" default="resolve" xmlns:ivy="antlib:org.apache.ivy.ant">

    <target name="resolve">
        <ivy:artifactproperty name="[artifact].version" value="[revision]">
            <dependency org="commons-logging" name="commons-logging" rev="latest.integration"/>
        </ivy:artifactproperty>

        <echo message="Commons logging latest  = ${commons-logging.version}"/>
    </target>

</project>

没有方便的方法可以从命令行执行此操作。希望这可以帮助。

笔记:

于 2012-12-27T01:16:36.877 回答