Maven中settings.xml与pom配置冲突

来自姬鸿昌的知识库
(重定向自Maven中settings.xml与pom
跳到导航 跳到搜索

settings.xml 中的配置文件元素是 pom.xml 配置文件元素的截断版本。 它由 activation、repositories、pluginRepositories 和 properties 元素组成。 配置文件元素仅包括这四个元素,因为它们关注整个构建系统(这是 settings.xml 文件的作用),而不是单个项目对象模型设置。

如果配置文件在设置中处于活动状态,则其值将覆盖 POM 或 profiles.xml 文件中任何等效 ID 的配置文件。

https://maven.apache.org/settings.html#Profiles


比如:

settings.xml

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd">
……
  <profiles>
    <profile>
      <id>jdk-1.8</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
      </activation>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
    </profile>
  </profiles>
……

就会覆盖项目中pom.xml的相关配置:

……    
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
……