请您告诉我,如何使用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
答案 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>
如果prod
,qa
和dev
是属性文件,那么您可以将其用作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
内容,配置等。