我正在尝试执行以下操作:
<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复制依赖项。 但我找不到正确的参数
答案 0 :(得分:16)
您可以使用profiles执行此操作。
e.g。
<profile>
<id>platform-windows</id>
<activation>
<os>
<family>windows</family>
</os>
</activation>
<build>
<plugins>
...
</plugins>
</build>
</profile>
在您的情况下,您可能只想在配置文件的激活元素中指定os / family。
答案 1 :(得分:3)
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”,我想这不是你所希望的。我不知道有一个属性来获取os系列,因此我建议使用maven配置文件作为prunge,以处理使用所需操作系统配置插件。