2

さまざまなプロファイルを使用して生成されたさまざまな「jar」ファイルを管理する方法を理解するのに問題があります。例。私はプロジェクトを持っています: my.project:sample:1.0 そして、2 つのプロファイルを使用します:

  1. Profile1を使用すると、java 7 を使用してコンパイルされ、依存関係がother:project:1.0になります。
  2. Profile2を使用すると、Java 6 を使用してコンパイルされ、依存関係が異なる:プロジェクト:3.0になります。

ローカル環境でコマンド ラインを使用するのは簡単ですが、artifactory に保存して管理する方法がわかりません。

同じライブラリを使用するが、異なるプロファイルを使用して生成された 2 つの異なるプロジェクトがあります。

  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 に答える