我有一个Maven存储库设置为托管一些dll,但我需要我的Maven项目下载不同的dll,具体取决于使用的JVM是x86还是x64.
因此,例如,在运行x86版本的JVM的计算机上,我需要将ABC.dll作为依赖项从存储库下载,但在运行x64版本的JVM的另一台计算机上,我需要它下载XYZ.dll.
我该怎么做呢?一个示例pom.xml文件会很好.
解决方法
这适用于任何VM.您可以根据环境使用
profiles进行备用配置.
配置文件包含一个激活块,它描述了何时激活配置文件,然后是通常的pom元素,例如依赖项:
<profiles> <profile> <activation> <os> <arch>x86</arch> </os> </activation> <dependencies> <dependency> <!-- your 32-bit dependencies here --> </dependency> </dependencies> </profile> <profile> <activation> <os> <arch>x64</arch> </os> </activation> <dependencies> <!-- your 64-bit dependencies here --> </dependencies> </profile> </profiles>
正如您提到的DLL,我假设这只是Windows,所以您可能还想添加< family> Windows< / family>在< os>下标签.
编辑:在64位操作系统上混合使用32位虚拟机时,您可以通过运行maven目标来查看虚拟机为os.arch系统属性提供的值
mvn帮助:评估
然后进入
${} os.arch
或者,目标帮助:系统列出所有系统属性(没有特定的顺序.)