常规:我需要从命令行执行具有覆盖依赖版本(插件依赖)的 Maven 插件。项目 pom 中不会定义插件。
具体:我需要执行maven-checkstyle-plugin
作为 teamcity 构建的一步;该插件不会在项目 pom 中定义。我使用以下命令行:
mvn org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check -Dencoding=UTF-8
但是我需要使用最新的 checkstyle 执行插件如图所示here .
POM xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
</plugin>
命令行:
mvn org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check
POM xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>7.0</version>
</dependency>
</dependencies>
</plugin>
命令行:
?
最佳答案
最佳实践是创建 Maven profile使用您的设置,然后在 CI 上构建时激活此配置文件。
配置文件示例:
<profiles>
<profile>
<id>ci</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>7.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
</profiles>
如何在 TeamCity 上启用它的示例:mvn checkstyle:check -Pci
通常将 execution
部分添加到配置文件配置中,以使插件目标作为特定阶段正常构建的一部分自动运行,但仅当通过例如 mvn install -Pci
启用 ci
配置文件时。
关于java - 从命令行覆盖运行时使用的依赖项版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38219771/