为了账号安全,请及时绑定邮箱和手机立即绑定

配置文件未使用 -P 选项激活,而是激活另一个配置文件

配置文件未使用 -P 选项激活,而是激活另一个配置文件

收到一只叮咚 2022-01-06 19:51:55
我的理解是,当使用 -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'

现在它按预期工作。


查看完整回答
反对 回复 2022-01-06
?
一只甜甜圈

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命令中添加配置文件选项。


查看完整回答
反对 回复 2022-01-06
  • 2 回答
  • 0 关注
  • 191 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号