为 Maven 模块使用不同的配置文件

Using different profiles for Maven Modules

我正在尝试在多模块 Maven 项目中工作。整个公司都有一个 pom 项目,我们在其中定义了两个 maven 配置文件:application - 它在我们构建应用程序时使用(必须创建 zip 等),module - 当我们构建一个简单的通用模块时。我们将此 pom 项目称为 build.module

现在有一个 maven 多模块项目也在使用 build.module。该项目包含两个模块,一个是应使用“application”配置文件构建的应用程序(myapp),另一个是常见的应该使用“module”配置文件构建的模块 (mycommon)。

如果我 运行 mvn clean install 到多模块那里我可以只指定使用的配置文件,但我不想用相同的配置文件构建两个模块,我想要一些对他们的某种控制。

虽然我在多模块项目中有多个模块,但也可以定义额外的配置文件来控制应该构建哪些模块。

我的问题是如何设法以 myapp 使用“application”配置文件构建的方式来构建我的多模块项目而 mycommon 是使用“module”配置文件构建的?

--> 构建模块

-----> 多模块项目

----------> 我的共同点

----------> 我的应用程序

非常感谢,如果您知道该怎么做,您将对我有很大帮助:)

祝你有愉快的一天。

我们定义了类似的东西

<profiles>
  <profile>
    <id>findbugs</id>
    <activation>
      <file>
        <exists>${basedir}/.mvn/active-profiles/findbugs</exists>
      </file>
    </activation>
    ...

这允许您通过将名为 findbugs 的文件添加到相应目录来激活 findbugs。您的问题应该可以按照相同的思路解决。

附带说明:我决定以后用属性(即 skip/enable 插件)替换大部分配置文件,因为我们想在 POM 中收集所有信息。尽管如此,配置文件的解决方案现在已经运行了大约 2 年。