有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

pom中基于活动概要文件的java变更封装

我有一个用maven编译的项目。我在pom中声明了不同的配置文件。xml。 对于其中一些配置文件,我更喜欢构建war,而对于其他配置文件,我更喜欢jar。我使用手动编辑pom。xml文件,并将打包变量更改为

<packaging>war</packaging>

<packaging>jar</packaging>

在做手术之前

$ mvn clean package -Pchosenprofile

我如何告诉mvn每个配置文件对应的包装,这样我就不需要编辑pom了。xml


共 (3) 个答案

  1. # 1 楼答案

    如果要使用配置文件,可以使用以下内容:

    <?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>
    
  2. # 2 楼答案

    你看过war插件的attachClasses配置设置了吗?这个简单的设置可以让您在单个maven执行中同时构建war和jar(默认情况下使用分类器“类”)

  3. # 3 楼答案

    我想你做不到

    我可以想到两种选择:

    • 有两个单独的模块用于打包,并根据配置文件调用其中一个模块
    • 让您的模块处于war状态,并根据配置文件调整生命周期(包括/排除构建步骤),以生成jar或war

    我更喜欢第二种方法——构建服务器可能会同时构建这两种方法,开发人员会使用适当的配置文件/设置跳过不需要的类型