【问题标题】:How to specify packaging in a Maven profile?如何在 Maven 配置文件中指定包装?
【发布时间】:2017-07-11 18:17:24
【问题描述】:

我有一个可以以两种不同方式打包和部署的项目,它可以是 Tomcat 的 WAR,也可以是 AWS Lambda 的阴影 JAR。目前这不是很好,我必须在发布时不断地来回更改 pom.xml。有没有办法使用 Maven 配置文件来实现这一点?

例如,我想做

mvn install -Pwar 

生成 WAR,并且

mvn install -Plambda

生成带阴影的 JAR。

这可能吗?

【问题讨论】:

  • 只需使用profile -> plugins -> plugin -> executions -> execution 来定义相关插件的自定义执行(我假设在您的情况下它将是shade:shadewar:war 目标)。将它们绑定到通常执行的相同阶段(请参阅每个插件的文档)。您可以禁用插件的默认执行,如下所述:stackoverflow.com/questions/14476757/…

标签: java maven tomcat aws-lambda


【解决方案1】:

您可以尝试在 pom.xml 中包含以下内容

        <packaging>${packaging.type}</packaging> 

        <profiles>
            <profile>
                <id>lambda</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
                <properties>
                    <packaging.type>jar</packaging.type>
                </properties>
            </profile>
            <profile>
                <id>war</id>
                <properties>
                    <packaging.type>war</packaging.type>
                </properties>
                    </profile>
              </profiles>

【讨论】:

    猜你喜欢
    • 2011-01-06
    • 2016-07-07
    • 1970-01-01
    • 2021-07-03
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 2013-12-28
    相关资源
    最近更新 更多