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

我的理解是,当使用 -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>


收到一只叮咚
浏览 192回答 2
2回答

绝地无双

看起来我需要明确停用build-linux-amd64配置文件。我编译使用mvn&nbsp;clean&nbsp;compile&nbsp;-P'cross-compile,!build-linux-amd64'现在它按预期工作。

一只甜甜圈

根据您在 Travis 日志中提供的内容,我发现您正在运行 mavenmvn --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命令中添加配置文件选项。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java