2013-07-02 1 views
0

Имейте проект с несколькими проектными модулями и сам с другими проектами модулей. У меня есть определенные модули, генерирующие специальный тип артефакта «.kar», и я развертываю это в artifactory во время фазы развертывания maven.Зависимость от maven: копирование между модулями

Теперь я хочу найти способ, используя этот существующий pom, чтобы загрузить эти конкретные артефакты из artifactory по версии.

mvn зависимость: копия <> позволяет мне загрузить это на определенный артефакт.

Я хочу, чтобы это выполнялось через файл pom, который генерирует эти артефакты. Проблема в том, что я использую зависимость: copy, она работает только на текущей помпе, которая может иметь или не иметь специальный артефакт.

Если я использую его, он повторно развертывает все артефакты и загружает специальный артефакт правильно. Однако это неправильное решение.

ответ

0

Вы можете добавить в свой проект новый модуль, который содержит <dependencies> для всех ваших артефактов .kar. В файле POM этого нового модуля вы можете использовать команду copy-dependencies для плагина maven-dependency.

<project> 

    <!-- Integrate this module into your multi-module project. --> 
    <parent> 
    <groupId>my.group.id</groupId> 
    <artifactId>my-parent-pom</artifactId> 
    <version>1.0.0-SNAPSHOT</version< 
    </parent> 

    ... 

    <!-- Add dependencies for all your .kar artifacts. --> 
    <dependencies> 
    <dependency> 
     <groupId>my.group.id</groupId> 
     <artifactId>kar-artifact-1</artifactId> 
     <version>${project.version}</version> 
     <type>kar</type> 
    </dependency> 
    <dependency> 
     <groupId>my.group.id</groupId> 
     <artifactId>kar-artifact-2</artifactId> 
     <version>${project.version}</version> 
     <type>kar</type> 
    </dependency> 
    ... 
    </dependencies> 

    <build> 
    <plugins> 
     <!-- Use the maven-dependency-plugin to copy your .kar artifacts. --> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <version>2.8</version> 
     <executions> 
      <execution> 
      <id>copy-kar-artifacts</id> 
      <goals> 
       <goal>copy-dependencies</goal> 
      </goals> 
      <configuration> 
       <includeTypes>kar</includeTypes> 
      </configuration> 
      </execution> 
     </executions> 
     <plugin> 
    </plugins> 
    </build> 

</project>