【发布时间】:2016-07-06 08:47:18
【问题描述】:
常规:我需要从命令行执行 maven 插件,并覆盖依赖版本(插件依赖)。项目 pom 中不会定义插件。
具体:我需要在teamcity build 中执行maven-checkstyle-plugin;这个插件不会被定义在项目 pom.xml 中。我使用以下命令行:
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>
命令行:
?
【问题讨论】:
-
为什么不在 pom 中定义?没有意义...在命令行上无法覆盖依赖版本。为什么需要这个?
-
您很可能无法做到这一点。一个可能的技巧是执行预构建步骤,在其中复制目标
pom.xml文件,增强它,将此插件配置添加到其pluginManagement部分,然后通过 @ 在此替代 pom 文件上执行构建987654332@ 选项(例如mvn -f enhanced-pom.xml clean install)。更好的解决方案是让企业 maven 父 pom 在哪里放置 CI 相关检查/要求,用于所有 maven 项目。
标签: java maven maven-3 maven-plugin checkstyle