我有一个用maven编译的项目。我在pom.xml中声明了不同的配置文件。 对于其中一些配置文件,我更喜欢建立一个战争,而对于其他配置文件,我更喜欢一个jar。我用来手动编辑pom.xml文件并将打包变量更改为
<packaging>war</packaging>
或
<packaging>jar</packaging>
之前
$ mvn clean package -Pchosenprofile
如何告诉mvn与每个配置文件对应的包装,这样我就不需要编辑pom.xml了?
答案 0 :(得分:97)
如果您想使用个人资料,可以使用以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
..
<packaging>${packaging.type}</packaging>
<profiles>
<profile>
<id>webapp</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<packaging.type>war</packaging.type>
</properties>
</profile>
<profile>
<id>batch</id>
<properties>
<packaging.type>jar</packaging.type>
</properties>
</profile>
</profiles>
</project>
答案 1 :(得分:4)
你看过war插件的attachClasses配置设置了吗?这个简单的设置可以让你在单个maven执行中构建war和jar(默认情况下使用分类器“classes”)。
答案 2 :(得分:1)
我认为你不能。
我能想到两种选择:
我更喜欢第二种方法 - 构建服务器可能会构建两种方法,开发人员可以使用正确的配置文件/设置来跳过不需要的类型。