General:我需要从命令行执行maven插件,覆盖依赖版本(插件依赖)。在项目pom中不会定义插件。
Concrete:我需要执行maven-checkstyle-plugin
作为teamcity建设的步骤;这个插件不会被定义为项目pom。我使用以下命令行:
mvn org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check -Dencoding=UTF-8
但是我需要用最新的checkstyle执行插件,如图所示。
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配置文件,然后在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
部分被添加到配置文件配置,使插件目标自动运行作为正常构建的一部分,在某一阶段,但只有当ci
配置文件通过启用,例如,mvn install -Pci
。