一个Maven构建可以判断它是否是多模块的

时间:2019-04-01 23:18:21

标签: maven

我有一个多模块的Maven构建,其结构类似于

a/
 pom.xml
 b/
  pom.xml
  c/
   pom.mxl
  d/pom.xml
 e/
  pom.xml

某些分析插件运行缓慢,因此在构建多个模块(cd a; mvn install)而不是单个模块(cd a/b/c; mvn install)时,我想跳过它们。在单模块构建中,我可能会查看并修复所生成的警告,但是在多模块构建中,我将不再查看它们,因为完整构建实际上会构建数十个模块。

有没有一种方法可以确定我是否正在从内部构建多个模块?

我希望从reactor.build运行时在所有模块中都定义类似/a的东西,而从/a/b/c运行时却没有定义类似的东西。

当我用Google搜索时,我所能找到的就是如何建立一个多模块构建或仅构建某些项目,这不是我想要的。

目标

我了解Maven的构建周期。我希望能够在pom root pom中添加这样的内容:

  <properties>
     <skipSlowPlugin>${multi.project.build}</skipSlowPlugin>
  <properties>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.slow</groupId>
          <artifactId>analysis-tool</artifactId>
          <version>1.0.0</version>
          <configuration>
             <skip>${skipSlowPlugin}</skip>
          </configuration>
        </plugin>
      </plugin>
    </pluginManagement>
  </build>

如果我从/a/b/c运行构建,则multi.project.build将为false,并且插件将运行。如果我从/a/a/b运行,那么multi.project.build将为true,并且该插件将无法运行。

在每种情况下,我都希望在当前目录下构建所有内容,因此--pm--am是无关紧要的。

0 个答案:

没有答案