【问题标题】:maven condition based on os family基于os系列的maven条件
【发布时间】:2012-01-22 19:00:13
【问题描述】:

我正在尝试执行以下操作:

                <execution>
                    <id>copy-jre</id>
                    <phase>package</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>com.sun</groupId>
                                <artifactId>jre</artifactId>
                                <version>${jdk.version}-${os.family}-x64</version>
                                <type>zip</type>
                            </artifactItem>                             
                        </artifactItems>
                        <outputDirectory>${target-deployer.cnc.dir}/java/${os.family}/x86_64/</outputDirectory>
                    </configuration>
                </execution>

在我的情况下,我想根据 os - windows 或 linux 复制依赖项。 但是我找不到正确的参数

【问题讨论】:

标签: maven parameters operating-system


【解决方案1】:

您可以使用profiles 来执行此操作。

例如

<profile>
    <id>platform-windows</id>
    <activation>
        <os>
            <family>windows</family>
        </os>
    </activation>
    <build>
        <plugins>
            ...
        </plugins>
    </build>
</profile>

在您的情况下,您可能只想在配置文件的激活元素中指定 os/family。

【讨论】:

    【解决方案2】:

    Sonatype 书,"Maven: The Complete Reference" 第 9.2 节处理 maven 属性并列出了与您的问题相关的以下属性:

    java.version
    os.name
    

    java.version 属性似乎可用,在我的测试中返回“1.6.0_27”。但是, os.name 属性并不完全是您要求的“os 系列”。就我而言,os.name 返回“Windows Vista”,我想这不是您所希望的。我不知道有什么属性可以根据您的需要获得操作系统系列,因此我建议使用 maven 配置文件作为 prunge 来处理使用所需操作系统配置您的插件。

    【讨论】:

    • 感谢您提供的链接 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 2016-01-15
    • 2022-11-27
    • 2014-07-21
    • 2020-11-03
    • 2012-06-07
    相关资源
    最近更新 更多