当前位置: 首页 > 面试题库 >

使用不同的工件标识在Maven中构建相同的项目(基于使用的JDK)

黄意智
2023-03-14
问题内容

我有一个场景,其中我的项目需要在不同的JDK中进行编译,并且所生成的工件名称应根据所使用的JDK而有所不同。例如,如果项目名称为MyProject,并且我调用mvn
install,则需要在JDK 1.4和JDK
1.5中对其进行编译,最后我得到了两个来自同一项目的jar(MyProjectJDK14-1.0和MyProjectJDK15-1.0)。有可能实现这一目标吗?


问题答案:

Maven做到这一点的方法不是更改finalName工件的,而是使用 分类器 。例如:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <classifier>${envClassifier}</classifier>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
  <profiles>
    <profile>
      <id>jdk16</id>
      <activation>
        <jdk>1.6</jdk>
      </activation>
      <properties>
        <envClassifier>jdk16</envClassifier>
      </properties>
    </profile>
    <profile>
      <id>jdk15</id>
      <activation>
        <jdk>1.5</jdk>
      </activation>
      <properties>
        <envClassifier>jdk15</envClassifier>
      </properties>
    </profile>
  </profiles>
</project>

${finalName}-${envClassifier}.jar使用以下语法来命名JAR工件并将其作为依赖项包括在内:

<dependency>
  <groupId>com.mycompany</groupId>
  <artifactId>my-project</artifactId>
  <version>1.0</version>
  <classifier>jdk16</classifier>
</dependency>

您必须调用Maven构建两次才能生成两个jar(一个不错的CI引擎可以做到)。



 类似资料:
  • 我正在使用maven构建我的java项目,但未能成功。因此,任何人都可以告诉我pom中需要的基本标记及其相应值。xml来构建项目?此外,如何从命令行手动添加Storm依赖项? 我的项目目录结构: 最初,我尝试了Maven Link并创建了< code>pom.xml,如下所示: 但是,之后我使用< code>mvn package。它抛出这个异常: 之后,我使用这个链接Maven link 2并创

  • 我有一个带有两个目录的 Git 存储库: (PHP/Laravel代码) (TypeScript/Vue代码) 我希望在WebStorm中打开项目时,标记为已排除,而在PhpStorm中创建项目时,将

  • 我也想让他们在一次通过中建立起来。所以档案可能不是一个好办法。我尝试使用多个插件执行。 首先,我创建两个单独的构建目录: 然后我尝试将maven-compiler-plugin配置为build两次,在两个目录中:

  • 在GCP上,我需要使用2个GCP项目;一个用于web应用程序,另一个用于存储web应用程序的机密(其结构来自google的存储库) 如自述文件中所述,我将使用GCP Secret Manager存储机密 该项目分配给GCP Secret Manager,用于组织共享的机密。 prj机密:在机密管理器中创建机密 在prj应用程序中,我想使用工作负载标识,因为我不想使用serviceFactkey d

  • 问题内容: 我有这样一种逻辑,即先单击当前页面的标题,再单击下一步,然后再次获取标题,并且如果两个标题相同,则意味着导航尚未移至下一页,它将再次单击下一步。 但是,我的问题是title元素的Xpath不同-同一title元素具有两个Xpath。一个是一些页面,另一个是其他页面。 就是这个 要么 那么,我该如何处理呢? 问题答案: 如果元素具有两个xpath,则可以编写两个xpath,如下所示 例如

  • 我有这样一种逻辑,首先单击next按钮获取当前页面的标题,然后再次获取标题,如果两个标题相同,意味着导航没有移动到下一页,它会再次单击next。 然而,我的问题是title元素的Xpath不同-同一title元素有两个Xpath。一个是一些页面,另一个是其他页面。 要么是这个, 或 那么,我该怎么处理呢?