我的理解是,當使用 -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>
2 回答

絕地無雙
TA貢獻1946條經驗 獲得超4個贊
看起來我需要明確停用build-linux-amd64
配置文件。我編譯使用
mvn clean compile -P'cross-compile,!build-linux-amd64'
現在它按預期工作。

一只甜甜圈
TA貢獻1836條經驗 獲得超5個贊
根據您在 Travis 日志中提供的內容,我發現您正在運行 maven
mvn --settings scripts/settings.xml install -DskipTests=true -Dgpg.skip -Dmaven.javadoc.skip=true -B -V
在這一步中,您正在編譯沒有配置文件選項的代碼。
然后你跑
mvn package -Pcross-compile -DskipTests=true -Dgpg.skip -Dmaven.javadoc.skip=true
.
在這個打包步驟中,代碼被編譯。因此 mvn 不會使用配置文件中的編譯選項再次編譯代碼。
所以嘗試在第一個mvn install
命令中添加配置文件選項。
添加回答
舉報
0/150
提交
取消