Насколько я понимаю, когда профиль явно установлен с опцией -P, он является эксклюзивным, и этот профиль должен активироваться независимо от того, что.
В моем случае после выполнения команды mvn clean compile -Pcross-compile
профиль cross-compile
был проигнорирован и вместо него был активирован build-linux-amd64
.
Что здесь происходит и почему cross-compile
не вызывается?
Моя конфигурация профиля ниже:
<profiles>
<!-- Cross-compile profile (can only be run under linux os) -->
<profile>
<id>cross-compile</id>
<properties>
<current-os>linux</current-os>
<current-arch>amd64</current-arch>
<crossCompile>true</crossCompile>
<build-target>native-build-cc-all</build-target>
</properties>
<build>
<plugins>
<!-- Enforcer: Make sure this can only be run from the Linux OS -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-os</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireOS>
<name>Linux</name>
<family>unix</family>
<arch>amd64</arch>
</requireOS>
</rules>
<failFast>true</failFast>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- BUILD PROFILE: Linux - x86_64/amd64 -->
<profile>
<id>build-linux-amd64</id>
<activation>
<os>
<name>linux</name>
<family>unix</family>
<arch>amd64</arch>
</os>
<property>
<name>!crossCompile</name>
</property>
</activation>
<properties>
<current-os>linux</current-os>
<current-arch>amd64</current-arch>
<build-target>native-build-linux-x86_64</build-target>
</properties>
</profile>
</profiles>