如何使用maven基于配置文件创建EAR文件?

时间:2015-02-14 10:02:40

标签: maven

请您告诉我,如何使用maven构建工具基于环境配置创建EAR文件?

我在下面给出了我的项目文件夹结构。

MyProjectApp
  --- pom.xml

MyEAR
   -- src
       -- config
            -- prod
           --  qa
            -- dev
   --pom.xml
MyWeb
  -- src
      -- java
           --main
  --pom.xml

(MyEar和MyWeb是模块)或MyProjectApp的子项。

我期待以下EAR文件。

MyProjectApp_PROD.ear - 仅包含生产配置信息

MyProjectApp_DEV.ear - 仅包含DEV配置信息。

问候
Vasanth D

1 个答案:

答案 0 :(得分:1)

您可以使用maven配置文件分隔环境信息。所以,你可以像这样输入pom.xml属性:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <environment>dev</environment>
            <property-one>value-one</property-one>
            <property-two>value-two</property-two>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <environment>prod</environment>
            <property-one>value-one</property-one>
            <property-two>value-two</property-two>
        </properties>
    </profile>
</profiles>

如果prodqadev是属性文件,那么您可以将其用作filters获取环境信息以生成application.xml:< / p>

<build>
    <filter>/path/to/${environment}.properties</filter>
</build>

要使用您想要的名称生成EAR文件,您可以在构建中设置最终名称,如下所示:

<build>
    <finalName>MyProjectApp_${environment}</finalName>
</build>

你也可以使用maven-ear-plugin,如下所示:

<plugin>
    <artifactId>maven-ear-plugin</artifactId>
    <version>2.10</version>
    <configuration>
        <version>6</version>
        <defaultLibBundleDir>lib</defaultLibBundleDir>
        <outputDirectory>${project.build.directory}/dist</outputDirectory>
        <modules>
            <webModule>
                <groupId>your.group.id</groupId>
                <artifactId>MyWeb</artifactId>
                <moduleId>MyWeb</moduleId>
                <contextRoot>/portal</contextRoot>
            </webModule>
        </modules>
        <fileNameMapping>no-version</fileNameMapping>
    </configuration>
</plugin>

然后,要生成 prod 包,请执行:mvn clean package -Pprod

dev 包,请执行:mvn clean package -Pdev

您也可以默认激活配置文件。

如果您需要在相同的构建执行中生成两者,请查看maven-assembly-plugin

如果这对您不起作用,请提供更多信息,例如pom.xml内容,配置等。