【问题标题】:Maven Packing Type Based on Profile基于 Profile 的 Maven 打包类型
【发布时间】:2014-06-13 01:15:10
【问题描述】:

我在 stackoverflow 上使用了一个基于配置文件动态更改包装类型的示例

Changing packaging based on active profile in pom

这是我的 pom.xml 的 sn-p

<?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 类。

【问题讨论】:

  • 这似乎是错误的。模块化看起来是你应该这样做的方式。类似于 1 个用于业务逻辑的 JAR 模块、1 个用于 WebApp 的 WAR 模块、一个用于 CLI 应用程序的 JAR(或其他)模块。 2 持续取决于第一个。
  • 顺便说一句,链接问题解决方案之所以有效,是因为该属性有一个默认值,通过默认配置文件。但看起来仍然是错误的路径;)
  • @Tome 谢谢!我想到了为 package.type 创建一个默认值,这很奏效。

标签: maven pom.xml


【解决方案1】:

我最终创建了一个带有值的默认 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>
...

【讨论】:

    猜你喜欢
    • 2011-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2021-12-23
    • 2016-07-13
    • 2011-07-29
    相关资源
    最近更新 更多