Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Ant和Ivy仅保留最新的依赖项快照_Ant_Ivy_Dependency Management_Snapshot - Fatal编程技术网

使用Ant和Ivy仅保留最新的依赖项快照

使用Ant和Ivy仅保留最新的依赖项快照,ant,ivy,dependency-management,snapshot,Ant,Ivy,Dependency Management,Snapshot,我正在使用Ant构建我的项目,并使用Ivy解决它的依赖关系。我的项目有一个将快照发布到我的内部Artifactory服务器的依赖项 如果依赖项发布了一个新快照,而我执行了一个,Ivy将获得新快照,但保留以前的快照。因此,在我的lib目录中有两个版本的依赖项 依赖关系快照的名称类似于depproject-1.0.0+23.jar,其中23是构建编号。它发表在一个类似的地址。这不是Maven存储库,它被配置为存储唯一的快照 我是常春藤的新手。这是预期的行为吗?如何配置Ivy或Ant,以便只保留最新的

我正在使用Ant构建我的项目,并使用Ivy解决它的依赖关系。我的项目有一个将快照发布到我的内部Artifactory服务器的依赖项

如果依赖项发布了一个新快照,而我执行了一个
,Ivy将获得新快照,但保留以前的快照。因此,在我的
lib
目录中有两个版本的依赖项

依赖关系快照的名称类似于
depproject-1.0.0+23.jar
,其中
23
是构建编号。它发表在一个类似的地址。这不是Maven存储库,它被配置为存储唯一的快照

我是常春藤的新手。这是预期的行为吗?如何配置Ivy或Ant,以便只保留最新的依赖项快照

ivysettings.xml

<?xml version="1.0" encoding="UTF-8"?>
<ivy-settings>
    <settings defaultResolver="main" />
    <resolvers>
        <chain name="main">
            <ibiblio
                name="artifactory-example-snapshots"
                m2compatible="false"
                root="http://artifactory.example.com/example-snapshots-local/"
                pattern="[organization]/[module]/1.0-SNAPSHOT/[artifact]-[revision](-[classifier]).[ext]" />
            <!-- more repos listed -->
        </chain>
    </resolvers>
</ivy-settings>
<ivy-module version="2.0">
    <info organisation="com.example" module="myproject" />
    <dependencies>
        <dependency org="com.example" name="depproject" rev="latest.integration" />
    </dependencies>
</ivy-module>

ivy.xml

<?xml version="1.0" encoding="UTF-8"?>
<ivy-settings>
    <settings defaultResolver="main" />
    <resolvers>
        <chain name="main">
            <ibiblio
                name="artifactory-example-snapshots"
                m2compatible="false"
                root="http://artifactory.example.com/example-snapshots-local/"
                pattern="[organization]/[module]/1.0-SNAPSHOT/[artifact]-[revision](-[classifier]).[ext]" />
            <!-- more repos listed -->
        </chain>
    </resolvers>
</ivy-settings>
<ivy-module version="2.0">
    <info organisation="com.example" module="myproject" />
    <dependencies>
        <dependency org="com.example" name="depproject" rev="latest.integration" />
    </dependencies>
</ivy-module>

我假设您正在使用lib目录中的jar创建类路径,类似于:

<path id="compile.path">
  <fileset dir="lib" includes="*.jar"/>
</path>

您的问题是多个JAR包含相同的类

我认为你有两个选择:

  • 使用ivy任务管理构建类路径
  • 清除lib目录,使用任务重新填充最新的jar
  • 第一种选择可能看起来更复杂,但实际上它是一种非常有效的使用常春藤的方法。有关示例,请参见: