始终清理maven构建中的某个模块

时间:2014-07-08 00:37:50

标签: maven module multi-module

如何在实际构建模块之前确定将在多模块maven项目中构建哪些模块。原因:

  • 需要始终清理某些模块(注意:并非所有模块)

示例


说我有四个模块:

  • 模块A
  • 模块B
  • 模块C(取决于模块A)(在建造之前始终清洁它)
  • 模块D(取决于模块C)

执行案例

  • 案例1:mvn install将构建所有四个模块A,B,C,D
  • 案例2:mvn install -pl A将构建模块A
  • 案例3:mvn install -amd -pl A将构建模块A,C,D
  • 案例4:mvn install -am -pl D将构建模块A,C,D

在案例1,3,4中:在建造之前清洁C.

案例2:跳过清洁C

替代


  • 修改我的构建脚本,首先确定是否构建C,然后预先运行mvn clean -pl C
  • 添加一些插件到模块,它总是清理这个特定的模块,如果存在的话?

对于好奇的人来说,为什么我需要这个就是因为我的模块C有一些插件,如果没有在模块上进行maven清理就无法工作

2 个答案:

答案 0 :(得分:1)

从此链接https://maven.apache.org/plugins/maven-clean-plugin/usage.html

以下XML将强制清除项目。

<build>
<plugins>
  <plugin>
    <artifactId>maven-clean-plugin</artifactId>
    <version>3.0.0</version>
    <executions>
      <execution>
        <id>auto-clean</id>
        <phase>initialize</phase>
        <goals>
          <goal>clean</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
</plugins>
</build>

Maven XML简洁明了:)

答案 1 :(得分:-1)

Create a build profile并将清除插件的执行标记为<skip>true</skip>,以查找您不想在此构建配置文件中清理的模块

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
        <version>2.5</version>
        <configuration>
           <skip>true</skip>
        </configuration>
</plugin>