我在理解如何管理使用不同配置文件生成的不同“jar”文件时遇到一些问题。 一个例子。我有一个项目:my.project:sample:1.0 我们使用两个配置文件:
- 使用Profile1正在使用java 7进行编译并具有依赖other:project:1.0
- 使用 Profile2 是使用 java 6 进行编译并具有依赖项 different:project:3.0
在本地环境中使用命令行很容易管理,但我不知道如何在artifactory上存储和管理它。
我们有两个不同的项目,它们使用相同的库,但使用不同的配置文件生成:
- 项目需要 my.project:sample:1.0 - Profile1"
- 另一个项目需要 my.project:sample:1.0 - Profile2"
如何指定库和配置文件的依赖关系?
澄清:生成的 Jar 使用神器存储,并且项目使用存储库解决依赖关系。我无法将该项目用作模块。
最佳答案
您可以使用分类器来区分 Artifact 并在依赖项中重用分类器。
定义分类器
为此,您需要在 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>
关于maven - 如何使用不同的配置文件管理artifactory/mavenartifact,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15433238/