【问题标题】:How to package nested maven modules for full product suite build如何打包嵌套的 Maven 模块以构建完整的产品套件
【发布时间】:2013-07-24 09:24:39
【问题描述】:

在我们公司,我们通常会为众多不同的客户构建大量弹性客户端应用程序。每个 Flex 应用程序通常在运行时加载,不同种类的独立 Flex 模块 swfs 也是如此。

我正在尝试 Mavenise 项目,但对如何进行感到困惑。目录结构非常平坦,但我不知道如何对 pom 进行分层以便能够从层次结构中的任何位置进行构建。

结构可能如下:

Client1 - pom.xml
-App1 - pom.xml
-App2 - pom.xml
-App3 - pom.xml
-Module1 - pom.xml
-Module2 - pom.xml

Client2 - pom.xml
-App1 - pom.xml
-App2 - pom.xml
-Module1 - pom.xml
-module2 - pom.xml
-Module3 - pom.xml

问题在于,如果我想构建 Client2/App1 及其所有依赖模块(即 Client2/Module1 和 Client2/Module2)。我当然可以声明:

<modules>
   <module>Module1</module>
   <module>Module2</module>
</modules>

在 Client2/App1/pom.xml 内部,将包指定为“pom”,但这不允许实际为 Client2/App1 本身编译 swf。

我可以将 Client2/App1 打包为 swf 并让它自己构建 Client2/App1.swf,并在 Client2/pom.xml 中声明:

<modules>
   <module>App1</module>
   <module>Module1</module>
   <module>Module2</module>
</modules>

但希望也可以选择独立构建 Client2/App2 或任何其他应用程序。

1) 我是否可以使用配置文件设置不同的模块声明以促进任意客户端构建?

2) 是否有另一种嵌套 pom 的方法,聚合器级别的 pom 也执行一些编译目标?

3)我看到您可以在同一级别使用除 pom 以外的名称添加其他 pom 以促进这一点,但似乎我不能在声明中包含这些 pom。

任何帮助/想法表示赞赏。

【问题讨论】:

    标签: apache-flex maven module pom.xml flex-mojos


    【解决方案1】:

    通常你会有一个 pom.xml 定义模块(如果是 Client1,这将是 App1、App2、App3、Module1 和 Module2)如果你告诉 maven 构建 Client1,这将自动构建所有客户端模块。一般来说,maven 不支持您构建一个模块,而是让 maven 自动构建它所依赖的所有模块。但是,您可以在 Client1-pom 中创建单独的配置文件,每个配置文件选择不同的子集:

    <profiles>
      <profile>
        <id>BuildApp1</id>
        <modules>
            <module>App1</module>
            <module>Module1</module>
            <module>Module2</module>
        </modules>
      </profile>
      <profile>
        <id>BuildApp2</id>
        <modules>
            <module>App2</module>
            <module>Module1</module>
            <module>Module2</module>
        </modules>
      </profile>
    </profiles>
    

    所以你会告诉 maven 激活配置文件“BuildApp1”或“BuildApp2”,它会构建不同的模块子集。

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      相关资源
      最近更新 更多