maven - 如何使用不同的配置文件管理artifactory/mavenartifact

标签 maven maven-3 artifactory maven-profiles

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

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

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

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

  1. 项目需要 my.project:sample:1.0 - Profile1"
  2. 另一个项目需要 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/

相关文章:

maven - gradle 存储库和 maven 存储库有什么区别?

android - 获取ArtifactoryPublication的BuildType版本名称

maven - Vaadin:无法加载widgetset.nocache.js

Maven无法找到Axis2 1.6.4或更高版本

java - 使用 IntelliJ IDEA 运行 Maven 项目

java - maven 在带有第三方库的 JFrog Artifact (snapshot-repo) 中找不到 jar 文件

java - 在 Intellij 中设置 Spring MVC Maven "Hello World"webapp

java - Maven 依赖插件似乎无法解决所有依赖

git - SCM Maven插件配置时如何指定git标签?

java - 如何在 Java 1.6 上运行 Spring boot Web 应用程序