当运行来自另一个JVM模块的源文件时,防止non-src代码模块运行maven构建周期

时间:2019-01-19 14:42:26

标签: maven intellij-idea

我制作了一个maven模块,该模块仅用于复制一些文件并对其进行一些处理。其中没有Java或kotlin,但是它是JVM类型的模块。但是由于某种原因,在我现在做完之后,当我尝试从其他模块中进行jvm项目时,maven生命周期就会运行(我认为直到并包括phase:包)。为什么会这样呢?我只希望能够在该模块上手动运行MVN阶段。有人知道如何为此模块禁用它吗?

1 个答案:

答案 0 :(得分:1)

所有阶段都针对所有模块运行。在根目录中运行mvn package时,它将对package中描述的每个模块运行从默认生命周期[1]到<modules>的所有阶段。

但是阶段什么也没做。它们只是标签-将 plugins 绑定到这些标签[2]。因此,在一个阶段中完成的操作取决于与该阶段绑定的插件列表。

您可以尝试的方法:

  • 将模块的packaging更改为非jar。包装确定默认插件绑定的列表。这似乎是您的最佳选择。
  • <modules>中删除该模块,然后分别运行所需的任何插件。因此,此模块将从您的根模块中完全排除。
  • 通过将插件设置为不存在的阶段(以及所有其他插件),从模块中解除插件的绑定(如果该插件是从父POM继承的):
    <plugin>
      <artifactId>maven-compiler-plugin</artifactId>
      <executions>
        <execution>
          <id>default-compile</id>
          <phase>none</phase>
        </execution>
      </executions>
    </plugin>