我有一个Maven项目,我们想要构建两个独立的jar,一个包含32位库,另一个包含64位库。
我们当前的构建将产生32或64位工件,具体取决于运行构建的操作系统。
我们当前如何设置的概述:
<properties>
<env.arch>${sun.arch.data.model}</env.arch>
</properties>
<build>
<pluginManagement>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-native</id>
<phase>process-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>artifact-for-${env.arch}</groupId>
<artifactId>artifact.name</artifactId>
</artifactItem>
...
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
</execution>
</executions>
所以它正在做的是复制与${env.arch}
的属性值匹配的依赖项,然后使用maven-jar-plugin
构建jar。
我们需要做的是从一个构建产生2个jar ...一个包含32位依赖项,一个包含64位依赖项。
任何人都可以就如何完成这项工作提供任何指导吗?
由于
答案 0 :(得分:2)
这可以通过在this answer中指定配置文件中的依赖关系来完成。您必须两次构建项目才能创建两个工件。您可能还应该为每个配置文件配置jar plugin,以便为工件提供不同的分类器。
您也可以在配置文件中设置一个属性,稍后在依赖关系部分使用它而不是环境变量。
您还可以根据当前系统的体系结构激活配置文件,以获得有效的默认情况:
<profile>
<activation>
<os>
<arch>x86</arch>
</os>
</activation>
...
</profile>
this page上描述了所有激活选项。