2

我在理解如何管理使用不同配置文件生成的不同“jar”文件时遇到了一些问题。一个例子。我有一个项目:my.project:sample:1.0 我们使用两个配置文件:

  1. 使用Profile1正在使用 java 7 和依赖项other:project:1.0进行编译
  2. 使用Profile2是使用 java 6 编译并具有不同的依赖项:project:3.0

在本地环境中使用命令行很容易管理,但是我不知道如何在artifactory上存储和管理它。

我们有两个不同的项目,它们使用相同的库,但使用不同的配置文件生成:

  1. 一个项目需要 my.project:sample:1.0 - Profile1 "
  2. 另一个项目需要 my.project:sample:1.0 - Profile2 "

如何使用库和配置文件指定这些依赖关系?

澄清:生成的 Jar 使用工件存储,项目使用存储库解决依赖关系。我不能将该项目用作模块。

4

1 回答 1

2

您可以使用分类器来区分工件并在依赖项中重用分类器。

定义分类器

为此,您需要在 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>
于 2013-03-15T14:09:00.333 回答