https://maven.apache.org/ref/
https://maven.apache.org/ref/3.9.6/maven-settings/settings.html
The default location for the settings file is ~/.m2/settings.xml
<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">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<proxies>
<proxy>
<active/>
<protocol/>
<username/>
<password/>
<port/>
<host/>
<nonProxyHosts/>
<id/>
proxy>
proxies>
<servers>
<server>
<username/>
<password/>
<privateKey/>
<passphrase/>
<filePermissions/>
<directoryPermissions/>
<configuration/>
<id/>
server>
servers>
<mirrors>
<mirror>
<mirrorOf/>
<name/>
<url/>
<layout/>
<mirrorOfLayouts/>
<blocked/>
<id/>
mirror>
mirrors>
<profiles>
<profile>
<activation>
<activeByDefault/>
<jdk/>
<os>
<name/>
<family/>
<arch/>
<version/>
os>
<property>
<name/>
<value/>
property>
<file>
<missing/>
<exists/>
file>
activation>
<properties>
<key>valuekey>
properties>
<repositories>
<repository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
snapshots>
<id/>
<name/>
<url/>
<layout/>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
snapshots>
<id/>
<name/>
<url/>
<layout/>
pluginRepository>
pluginRepositories>
<id/>
profile>
profiles>
<activeProfiles/>
<pluginGroups/>
settings>
https://maven.apache.org/ref/3.6.0/maven-settings/settings.html
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<proxies>
<proxy>
<active/>
<protocol/>
<username/>
<password/>
<port/>
<host/>
<nonProxyHosts/>
<id/>
proxy>
proxies>
<servers>
<server>
<username/>
<password/>
<privateKey/>
<passphrase/>
<filePermissions/>
<directoryPermissions/>
<configuration/>
<id/>
server>
servers>
<mirrors>
<mirror>
<mirrorOf/>
<name/>
<url/>
<layout/>
<mirrorOfLayouts/>
<id/>
mirror>
mirrors>
<profiles>
<profile>
<activation>
<activeByDefault/>
<jdk/>
<os>
<name/>
<family/>
<arch/>
<version/>
os>
<property>
<name/>
<value/>
property>
<file>
<missing/>
<exists/>
file>
activation>
<properties>
<key>valuekey>
properties>
<repositories>
<repository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
snapshots>
<id/>
<name/>
<url/>
<layout/>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
snapshots>
<id/>
<name/>
<url/>
<layout/>
pluginRepository>
pluginRepositories>
<id/>
profile>
profiles>
<activeProfiles/>
<pluginGroups/>
settings>
https://maven.apache.org/ref/3.1.0/maven-settings/settings.html
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<proxies>
<proxy>
<active/>
<protocol/>
<username/>
<password/>
<port/>
<host/>
<nonProxyHosts/>
<id/>
proxy>
proxies>
<servers>
<server>
<username/>
<password/>
<privateKey/>
<passphrase/>
<filePermissions/>
<directoryPermissions/>
<configuration/>
<id/>
server>
servers>
<mirrors>
<mirror>
<mirrorOf/>
<name/>
<url/>
<layout/>
<mirrorOfLayouts/>
<id/>
mirror>
mirrors>
<profiles>
<profile>
<activation>
<activeByDefault/>
<jdk/>
<os>
<name/>
<family/>
<arch/>
<version/>
os>
<property>
<name/>
<value/>
property>
<file>
<missing/>
<exists/>
file>
activation>
<properties>
<key>valuekey>
properties>
<repositories>
<repository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
snapshots>
<id/>
<name/>
<url/>
<layout/>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
snapshots>
<id/>
<name/>
<url/>
<layout/>
pluginRepository>
pluginRepositories>
<id/>
profile>
profiles>
<activeProfiles/>
<pluginGroups/>
settings>
https://maven.apache.org/ref/3.0/maven-settings/settings.html
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<proxies>
<proxy>
<active/>
<protocol/>
<username/>
<password/>
<port/>
<host/>
<nonProxyHosts/>
<id/>
proxy>
proxies>
<servers>
<server>
<username/>
<password/>
<privateKey/>
<passphrase/>
<filePermissions/>
<directoryPermissions/>
<configuration/>
<id/>
server>
servers>
<mirrors>
<mirror>
<mirrorOf/>
<name/>
<url/>
<layout/>
<mirrorOfLayouts/>
<id/>
mirror>
mirrors>
<profiles>
<profile>
<activation>
<activeByDefault/>
<jdk/>
<os>
<name/>
<family/>
<arch/>
<version/>
os>
<property>
<name/>
<value/>
property>
<file>
<missing/>
<exists/>
file>
activation>
<properties>
<key>valuekey>
<properties/>
<repositories>
<repository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
snapshots>
<id/>
<name/>
<url/>
<layout/>
repository>
repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
releases>
<snapshots>
<enabled/>
<updatePolicy/>
<checksumPolicy/>
snapshots>
<id/>
<name/>
<url/>
<layout/>
pluginRepository>
pluginRepositories>
<id/>
profile>
profiles>
<activeProfiles/>
<pluginGroups/>
settings>
true是Maven profile中的一个元素,它表示如果没有任何其他的profile被显式激活,那么这个profile将会被默认激活。
在Maven中,你可以定义多个profile,每个profile可以包含一些特定的设置,例如仓库的位置、插件的版本、依赖的版本等等。这些设置可以在不同的环境中使用,例如在开发环境、测试环境和生产环境中使用不同的设置。当你运行Maven命令时,你可以通过一些方式来显式地激活一个或多个profile,例如通过命令行参数或者通过设置环境变量。
但是,如果没有任何profile被显式激活,Maven将会使用哪个profile呢?这时,元素就起作用了。如果你在profile中将设置为true,那么这个profile将会在没有任何其他profile被显式激活的情况下被默认激活。
需要注意的是,如果有多个profile都将设置为true,那么Maven将会使用第一个在settings.xml文件中定义的profile。因此,你需要确保你的settings.xml文件中定义的profile的顺序是有意义的。
总的来说,true的作用是在没有其他profile被显式激活的情况下,默认激活这个profile。这可以帮助你确保在没有指定任何特定设置的情况下,Maven仍然可以使用一些合理的默认设置来构建你的项目。
maven.compiler.source
是 Maven 中的一个属性,它用于指定编译器编译源代码的 Java 版本。
在 Maven 的 pom.xml
文件中,你可以通过在
标签中设置 maven.compiler.source
属性来指定编译器编译源代码的 Java 版本。例如,要将编译器源代码版本设置为 1.8,你可以在 pom.xml
文件中添加以下代码:
<properties>
<maven.compiler.source>1.8maven.compiler.source>
properties>
这将告诉 Maven 使用 Java 1.8 版本的编译器来编译源代码。你可以根据需要将 maven.compiler.source
属性设置为其他 Java 版本。
请注意,maven.compiler.source
属性仅指定编译器编译源代码的 Java 版本。如果你还需要指定编译器生成目标字节码的 Java 版本,你应该使用 maven.compiler.target
属性。例如,要将编译器目标字节码版本设置为 1.8,你可以在 pom.xml
文件中添加以下代码:
<properties>
<maven.compiler.target>1.8maven.compiler.target>
properties>
通过设置 maven.compiler.source
和 maven.compiler.target
属性,你可以确保 Maven 使用正确的 Java 版本进行编译,并生成符合目标环境的字节码。
maven.compiler.target
是 Maven 中的一个属性,它用于指定编译器生成目标字节码的 Java 版本。
在 Maven 的 pom.xml
文件中,你可以通过在
标签中设置 maven.compiler.target
属性来指定编译器生成目标字节码的 Java 版本。例如,要将编译器目标字节码版本设置为 1.8,你可以在 pom.xml
文件中添加以下代码:
<properties>
<maven.compiler.target>1.8maven.compiler.target>
properties>
这将告诉 Maven 使用 Java 1.8 版本的编译器生成目标字节码。你可以根据需要将 maven.compiler.target
属性设置为其他 Java 版本。
请注意,maven.compiler.target
属性仅指定编译器生成目标字节码的 Java 版本。如果你还需要指定编译器编译源代码的 Java 版本,你应该使用 maven.compiler.source
属性。例如,要将编译器源代码版本设置为 1.8,你可以在 pom.xml
文件中添加以下代码:
<properties>
<maven.compiler.source>1.8maven.compiler.source>
<maven.compiler.target>1.8maven.compiler.target>
properties>
通过设置 maven.compiler.source
和 maven.compiler.target
属性,你可以确保 Maven 使用正确的 Java 版本进行编译,并生成符合目标环境的字节码。
maven.compiler.compilerVersion
是 Maven 中的一个属性,它用于指定编译器编译源代码的版本。
在 Maven 的 pom.xml
文件中,你可以通过在
标签中设置 maven.compiler.compilerVersion
属性来指定编译器编译源代码的版本。例如,要将编译器版本设置为 1.8,你可以在 pom.xml
文件中添加以下代码:
<properties>
<maven.compiler.compilerVersion>1.8maven.compiler.compilerVersion>
properties>
这将告诉 Maven 使用 Java 1.8 版本的编译器来编译源代码。你可以根据需要将 maven.compiler.compilerVersion
属性设置为其他编译器版本。
请注意,maven.compiler.compilerVersion
属性并不是必需的。如果你没有设置该属性,Maven 将使用默认的编译器版本,这通常是系统上安装的默认 Java 版本。
另外,如果你已经设置了 maven.compiler.source
和 maven.compiler.target
属性来指定编译器编译源代码的 Java 版本和生成目标字节码的 Java 版本,那么这些属性将优先于 maven.compiler.compilerVersion
属性。这意味着如果你没有显式设置 maven.compiler.compilerVersion
属性,Maven 将使用与 maven.compiler.source
和 maven.compiler.target
属性指定的 Java 版本相对应的编译器版本。
maven.compiler.source
, maven.compiler.target
这两个属性值来指定jdk版本maven.compiler.source
maven.compiler.target
maven.compiler.source
maven.compiler.target
在pom.xml中的位置
<project>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
project>
在settings.xml中的位置
<settings>
<profiles>
<profile>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
profile>
profiles>
settings>
在spring项目中, 用java.version
来统一设置
maven-compiler-plugin
这个插件来指定jdk版本<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.9.6version>
<configuration>
<source>21source>
<target>21target>
configuration>
plugin>
在pom.xml中的位置
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.9.6version>
<configuration>
<source>21source>
<target>21target>
configuration>
plugin>
plugins>
...
build>
...
project>
在settings.xml中的位置 , 好像用不了
<settings>
...
<profiles>
<profile>
<id>profile-maven-compiler-pluginid>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.9.6version>
<configuration>
<source>17source>
<target>17target>
configuration>
plugin>
plugins>
build>
profile>
profiles>
...
settings>
settings.xml 中的属性写在 settingprofilesprofileproperties中,位于第5层
<settings>
<profiles>
<profile>
<id>jdk-version-21id>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
profile>
profiles>
<activeProfiles>
<activeProfile>jdk-version-21activeProfile>
activeProfiles>
settings>
去掉注释
<profiles>
<profile>
<id>jdk-version-21id>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
profile>
profiles>
<activeProfiles>
<activeProfile>jdk-version-21activeProfile>
activeProfiles>
只用
激活, 可以不要
和
<profiles>
<profile>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
profile>
profiles>
只用
激活 , 则可以不要
<profiles>
<profile>
<id>jdk-version-21id>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
profile>
profiles>
<activeProfiles>
<activeProfile>jdk-version-21activeProfile>
activeProfiles>
<settings>
<profiles>
<profile>
<id>set-jdk-versionid>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<jdk-version>21jdk-version>
<maven.compiler.source>${jdk-version}maven.compiler.source>
<maven.compiler.target>${jdk-version}maven.compiler.target>
properties>
profile>
profiles>
<activeProfiles>
<activeProfile>set-jdk-versionactiveProfile>
activeProfiles>
settings>
一处设置,双重激活
<profiles>
<profile>
<id>set-JdkVersionid>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
<properties>
<JdkVersion>21JdkVersion>
<maven.compiler.source>${JdkVersion}maven.compiler.source>
<maven.compiler.target>${JdkVersion}maven.compiler.target>
properties>
profile>
profiles>
<activeProfiles>
<activeProfile>set-JdkVersionactiveProfile>
activeProfiles>
在pom.xml中可以用设置属性或者设置插件两种方法来设置jdk版本
<project>
<properties>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
properties>
project>
<maven.compiler.source>21maven.compiler.source>
<maven.compiler.target>21maven.compiler.target>
<project>
...
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<configuration>
<source>21source>
<target>21target>
configuration>
plugin>
plugins>
...
build>
...
project>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<configuration>
<source>21source>
<target>21target>
configuration>
plugin>
plugins>
两种方法都用上, , 插件的优先级高于属性
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<JdkVersionOfThisPom>17JdkVersionOfThisPom>
<java.version>${JdkVersionOfThisPom}java.version>
<maven.compiler.source>${JdkVersionOfThisPom}maven.compiler.source>
<maven.compiler.target>${JdkVersionOfThisPom}maven.compiler.target>
<maven.compiler.compilerVersion>${JdkVersionOfThisPom}maven.compiler.compilerVersion>
properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<configuration>
<source>${JdkVersionOfThisPom}source>
<target>${JdkVersionOfThisPom}target>
<compilerVersion>${JdkVersionOfThisPom}compilerVersion>
configuration>
plugin>
plugins>
build>