常春藤项目可以';t获取最新的Maven快照(使用汇编插件)

常春藤项目可以';t获取最新的Maven快照(使用汇编插件),maven,ivy,Maven,Ivy,当一个常春藤项目依赖于一个maven项目(使用汇编插件)时,就会出现问题。例如: Maven项目: 假设maven项目将部署2个快照包:对于exmaple,一个是my-app-1.0.0-20130504.000602-1.jar,另一个是my-app-1.0.0-20130504.001348-1-myzip.zip。pom.xml如下所示 <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.a

当一个常春藤项目依赖于一个maven项目(使用汇编插件)时,就会出现问题。例如:

  • Maven项目: 假设maven项目将部署2个快照包:对于exmaple,一个是my-app-1.0.0-20130504.000602-1.jar,另一个是my-app-1.0.0-20130504.001348-1-myzip.zip。pom.xml如下所示

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany.app</groupId>
    <artifactId>my-app</artifactId>
    <packaging>jar</packaging>
    <version>1.0.0-SNAPSHOT</version>
    
    <... ...>
    
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.2.1</version>
          <configuration>
            <descriptors>
              <descriptor>src/main/assembly.xml</descriptor>
            </descriptors>
          </configuration>
          <executions>
            <execution>
              <id>make-assembly</id>
              <phase>package</phase>
              <goals>
                <goal>single</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.7</version>
          <configuration>
            <groupId>${project.groupId}</groupId>
            <artifactId>${project.artifactId}</artifactId>
            <version>${project.version}</version>
            <packaging>zip</packaging>
            <file>my-app-1.01-myzip.zip</file>
          </configuration>
        </plugin>
      </plugins>
    </build>
    
    </project>
    
    4.0.0
    com.mycompany.app
    我的应用程序
    罐子
    1.0.0-SNAPSHOT
    org.apache.maven.plugins
    maven汇编插件
    2.2.1
    src/main/assembly.xml
    组装
    包裹
    仅有一个的
    org.apache.maven.plugins
    maven部署插件
    2.7
    ${project.groupId}
    ${project.artifactId}
    ${project.version}
    拉链
    my-app-1.01-myzip.zip
    
  • 常春藤项目

    Ivy项目依赖于上述maven项目发布的2个工件。ivy.xml如下所示:

    
    
  • 问题: 每次maven项目将新快照部署到artifactory服务器时,ivy项目都可以从artifactory服务器检索最新的my-app-xxx.jar,但它无法检索最新的my-app-xxx-myzip.zip(ivy无法知道zip已更新,只能从本地缓存检索zip)。 我要做的是删除本地缓存,然后再次运行ivy项目

    我做了一些调查,发现ivy任务“convertpom”没有将app-xxx-myzip.zip从pom转换为ivy,在转换后的ivy.xml中只能找到1个工件(my app xxx.jar)。不确定这是否是根本原因

    有人能帮忙吗?如何在ivy项目中获取两个工件的最后一组快照

    问候,,
    Alben

    为了澄清这一点,您正试图配置ivy以提取Maven项目发布的快照依赖项

    在这种情况下,以下答案将有助于解释:

    <configurations>
      <conf name="get-maven" />
    </configurations>      
    <dependencies>
      <dependency org="com.mycompany.app" name="my-app" rev="1.0.0-SNAPSHOT" changing="true" conf="get-maven->default">
        <artifact  name="my-app" ext="jar" type="jar"></artifact> 
        <artifact  name="my-app" ext="zip" type="zip" m:classifier="myzip"></artifact>  
      </dependency>
    </dependencies>