Как управлять артефактами артефактов/мавенов, используя разные профили

у меня есть некоторые проблемы с пониманием того, как управлять разными файлами «jar», созданными с использованием разных профилей. Пример. У меня есть проект: my.project:sample:1.0 И мы используем два профиля:

  1. Использование Profile1 компилирует с использованием java 7 и с зависимостью other:project:1.0
  2. Использование Profile2 — это компиляция с использованием java 6 и с зависимостью other:project:3.0

С помощью командной строки в локальной среде легко управлять, но я не знаю, как хранить и управлять ею в артефактах.

У нас есть два разных проекта, которые используют одну и ту же библиотеку, но сгенерированы с использованием разных профилей:

  1. Для проекта требуется my.project:sample:1.0 – Profile1"
  2. Для другого проекта требуется my.project:sample:1.0 – Profile2"

Как я могу указать эти зависимости с библиотекой и профилем?

Уточнение: сгенерированный Jar хранится с использованием артефакта, а проекты разрешают зависимости с использованием репозитория. Я не могу использовать проект как модуль.


person Fernando Rosado    schedule 15.03.2013    source источник
comment
Какую версию артефактори вы используете? У меня возникают проблемы с этой ошибкой jfrog.com/jira/browse/RTFACT-5974 и я подозреваю, что нам нужно обновиться.   -  person Carlos Bribiescas    schedule 24.02.2015
comment
У нас установлена ​​2.6.5, но у нас разрешено 15 снапшотов   -  person Fernando Rosado    schedule 05.03.2015


Ответы (1)


Вы можете использовать классификатор, чтобы различать артефакты и повторно использовать классификатор в зависимости.

определение классификатора

Для этого вам нужно определить классификатор в maven-jar-plugin:

<profiles>
     <profile>
         <id>profile1</id>
         ...
         <build>
             <plugins>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-jar-plugin</artifactId>
                     <version>2.4</version>
                     <executions>
                       <execution>
                       <phase>package</phase>
                       <goals>
                         <goal>jar</goal>
                       </goals>
                       <configuration>
                          <classifier>jdk6</classifier>
                       </configuration>
                      </execution>
                     </executions>
                 <plugin>
             <plugins>
         </build>
     </profile>
     <profile>
         <id>profile2</id>
         ...
         <build>
             <plugins>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-jar-plugin</artifactId>
                     <version>2.4</version>
                     <executions>
                       <execution>
                       <phase>package</phase>
                       <goals>
                         <goal>jar</goal>
                       </goals>
                       <configuration>
                          <classifier>jdk7</classifier>
                       </configuration>
                      </execution>
                     </executions>
                 <plugin>
             <plugins>
         </build>
     </profile>
</profiles>

использование классификатора в зависимости

Очень простой:

<dependency>
    <groupId>myGroup</groupId>
    <artifactId>myArtifact</artifactId>
    <classifier>jdk6</classifier>
<dependency>
person ben75    schedule 15.03.2013