基于配置文件的 Maven 打包类型

标签 maven pom.xml

我正在使用 stackoverflow 上找到的示例,该示例根据配置文件动态更改打包类型

Changing packaging based on active profile in pom

这是我的 pom.xml 的片段

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0             http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>com.scene7.is.qa</groupId>
<artifactId>jorogumo</artifactId>
<packaging>${packaging.type}</packaging>
...
<profile>
    <id>JorogumoReportingWebApp</id>
    <properties>
        <packaging.type>war</packaging.type>
        <final.name>jorogumo</final.name>
    </properties>
...

根据上面答案链接的赞成票,我假设这应该有效,但我在清理时收到错误

$ mvn clean
[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   
[ERROR]   The project com.scene7.is.qa:jorogumo:0.0.1-SNAPSHOT     (/Users/xyz/working/_workspaces/Scene7/java/jorogumo/pom.xml) has 1 error
[ERROR]     Unknown packaging: ${packaging.type} @ line 10, column 13

我错过了什么吗?或者这是错误的方法? 我的最终目标是在 Web 应用程序和命令行 jar 之间共享通用的 java 类。

最佳答案

我最终创建了一个默认的packing.type属性,其值是:

<modelVersion>4.0.0</modelVersion>
<groupId>com.scene7.is.qa</groupId>
<artifactId>jorogumo</artifactId>
<packaging>${packaging.type}</packaging>

...

<properties>
    <packaging.type>war</packaging.type>
</properties>

<profiles>
    <profile>
        <id>JorogumoReportingWebApp</id>
        <properties>
            <packaging.type>war</packaging.type>
            <final.name>jorogumo</final.name>
        </properties>
...

关于基于配置文件的 Maven 打包类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24196309/

相关文章:

java - 尝试使用 maven 安装项目时出现 NoClassDefFoundError

java - 创建名称为 ‘client’ 的 bean 时出错

maven - 如何使用 Maven 程序集插件 jar-with-dependencies 在 JAR 中包含自定义文件

maven - 人工Gradle插件覆盖快照版本

java - 在此系统 (mac) 上找不到 RPM 构建可执行文件 '/usr/bin/rpmbuild'

java - 如何确保 Maven 依赖项在给定范围内?

java - 强制源和目标使用 Java 版本的两种方法

eclipse - 为什么我收到 "Plugin execution not covered by lifecycle configuration with GWT"错误?

java - Pentaho Maven 依赖项

java - 使用 pom.xml 属性填充环境属性文件