使用Ivy / ant从命令行解析符号名称到版本号?

时间:2012-12-26 22:28:28

标签: java ant ivy

我想知道是否有人知道如何通过命令行解决常春藤为特定包抓取的版本?

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

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

然后返回,比如“1.1.18”

2 个答案:

答案 0 :(得分:1)

是,不......

这是可能的,但你需要很多肘部油脂。您必须在<target>文件中为其编写一个Ant build.xml

目标将以内嵌模式使用<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

还有兴趣这样做吗?

答案 1 :(得分:0)

有一个常春藤任务可以根据已解决的工件属性创建属性:

<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>

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

注意: