我正在尝试将Maven用于Java本机项目,使用它来确定当前系统是64位还是32位。因此,如果系统是32位,则以下标记
<linkerStartOption>\foo\${the.folder}\Microsoft SDK\lib</linkerStartOption>
的值为\foo\Program Files\Microsoft SDK\lib
,或者如果系统为64位,则链接为值\foo\Program Files (x86)\Microsoft SDK\lib
。
问题是目前我的项目使用<activeByDefault>
标记设置发布版本配置文件,当激活确定32位或64位系统的配置文件时,该配置文件被覆盖。这导致由发布配置文件确定的属性不可用,并导致Java本机构建失败。发布配置文件用于发布,还有一个用于调试的调试配置文件,它使用不同的<linkerStartOption>
标志,所以我不想让发布配置文件标志始终处于活动状态。
我的问题是,我的本机Java应用程序是否有办法确定32位Windows程序文件路径而不停用以<activeByDefault>
方式触发的版本配置文件?
以下是我确定系统架构的资料:
<profile>
<id>architecture</id>
<activation>
<os>
<family>Windows</family>
<arch>amd64</arch>
</os>
</activation>
<properties>
<the.folder>${env.PROGRAMFILES(X86)}</the.folder>
</properties>
</profile>
以下是要覆盖的发布配置文件:
<profile>
<id>release</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<options>/foo -bar</options>
</properties>
</profile>