Maven activeByDefault配置文件被另一个配置文件覆盖

时间:2017-10-20 21:35:08

标签: java maven native

我正在尝试将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>

0 个答案:

没有答案