maven - 当另一个配置文件触发时不起作用
问题描述
我的个人资料看起来像这样。
<profile>
<id>active-by-default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>${version.org.mongodb}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>java8</id>
<activation>
<jdk>(,1.8]</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<configuration>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/jce.jar</lib>
<lib>${java.home}/lib/jsse.jar</lib>
</libs>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>java9</id>
<activation>
<jdk>[1.9,)</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<configuration>
<libs>
<lib>${java.home}/jmods/java.base.jmod</lib>
</libs>
</configuration>
</plugin>
</plugins>
</build>
</profile>
这两个java-
配置文件适用于 ProGuard。而且我发现active-by-default
即使没有指定配置文件,配置文件也不起作用。
当我删除java-
符合我当前 JDK 版本的那些配置文件时,我发现它有效。
这是故意的吗?
解决方案
是的,这是记录在案的行为:
除非使用上述方法之一激活同一 POM 中的另一个配置文件,否则此配置文件将自动对所有构建处于活动状态。当在命令行或通过其激活配置激活 POM 中的配置文件时,默认情况下处于活动状态的所有配置文件都会自动停用。
https://maven.apache.org/guides/introduction/introduction-to-profiles.html
推荐阅读
- sql-server - 如何在 Spring Data JPA 中从 SQL Server 队列中获取消息
- c++ - Stroustrup 进行比较,勘误?
- html - How do I print to the screen what the user types in a text box in html?
- javascript - 使用新的刷新令牌订阅 fcm 时遇到问题
- javascript - 通过 MutationObserver 遍历多个 addedNodes 并获取 target.innerText
- c# - Visual Studio for mac 损坏(无法编译)
- python - 尝试使用 pypy 运行文件导致“'pypy' 未被识别为内部或外部命令、可运行程序或批处理文件”
- javascript - ReactJS 中的 onClick 方法
- jquery - 父 DIV 悬停时更改图像和文本属性
- arm - 通过 LM3S811 Qemu Simulation 中的中断在 UART 中回显数据