0

请问您知道是否可以在项目的 POM 文件中自动将一个 Maven 插件替换为另一个插件?

上下文是我正在尝试使用 Scala 编译器插件拦截 Scala 构建,为此我希望能够将 Scala 编译器插件指定为scalac命令行的参数(即不在 POM 文件中)。addScalacArgs这可以通过使用其标志使用最新版本的 Scala Maven 插件(称为 scala-maven-plugin) - 请参见此处: http ://davidb.github.com/scala-maven-plugin/apidocs/scala_maven/ScalaMojoSupport .html。但是,旧版本的插件(称为 maven-scala-plugin)是不可能的,我需要在所有各种 POM 文件中添加参数(在处理大型第三个 - 时,这不是一个有吸引力的提议 -党的项目)。

我的想法是,如果我可以在 POM 文件中自动将旧版本的插件替换为新版本,那么我可以使用addScalacArgs,一切都会顺利进行。我可能可以编写一些代码来执行此操作(显然手动执行它不会比通过并添加参数更好),但它似乎可能是受支持的 Maven 用例。

具体来说,我正在尝试替换此插件:

<plugin>
  <groupId>org.scala-tools</groupId>
  <artifactId>maven-scala-plugin</artifactId>
  ...
</plugin>

有了这个:

<plugin>
  <groupId>net.alchim31.maven</groupId>
  <artifactId>scala-maven-plugin</artifactId>
  ...
</plugin>
4

1 回答 1

0

您可以在 pom.xml 中使用两个配置文件来执行此操作。一个默认激活,另一个不激活。然后,您可以轻松选择要使用的配置文件。

例如,这里有一篇同样精神的旧帖子:How do I exclude a dependency in provided scope when running in Maven test scope?

于 2012-09-14T10:18:09.477 回答