maven中全局配置文件settings.xml及项目pom.xml的详解完整版

本文详细介绍了Apache Maven的全局配置文件settings.xml和项目配置文件pom.xml,包括它们的存放位置、作用以及各自的重点配置元素。settings.xml主要用于设置本地仓库路径、代理、认证信息等,而pom.xml则包含项目依赖和配置信息。profiles元素在settings.xml中用于根据环境调整构建配置,Repositories和pluginRepositories分别用于管理jar包和插件的远程仓库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

maven中全局配置文件settings.xml及项目pom.xml的详解
 

一、apache maven的简介
 
  Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(Project Object Model,POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
  说得简单点,maven功能很强大,在maven的项目会很小,但是也能进行和其它大项目一样的编译。这就依赖于maven项目在编译过程中所需要的jar包不在maven项目中,而是在maven的本地仓库中,maven项目中只指出所需要的jar包的坐标,等到需要用时会自动去本地仓库查找。如果存在的话就可以直接调用,如果不存在,则只需到settings.xml或项目pom.xml配置的中央仓库中下载到本地仓库即可。所以不必每次编译项目时都要准备好所需的jar包,因为本地仓库中可能早就存在了。
  这样第一可以减少maven具体项目的大小,只需在具体项目中pom.xml文件中配置好所有的依赖关系与依赖包的坐标即可。第二编译时下载到本地仓库的jar包可以下次其它项目编译时需要相同依赖包时所用,节省了每次都要重新手动下载jar的麻烦。
 
 

二、maven中settings.xml和pom.xml的简介
 
1、存放位置
  settings.xml是在maven的安装目录下的conf目录中( ${M2_HOME}/conf/ )
  我的电脑上是在D:\apache-maven-3.5.4\conf上,如下图:

  pom.xml是在每个你需要进行编译等处理的源文件

 

2、settings.xml和pom.xml的作用
  从settings.xml的文件名就可以看出,它是用来设置maven参数的配置文件。并且,settings.xml是maven的全局配置文件。而pom.xml文件是所在项目的局部配置。
Settings.xml中包含类似本地仓储位置、修改远程仓储服务器、认证信息等配置。
pom.xml包含项目所需的依赖关系及部分配置信息,如果同时在settings.xml中和pom.xml中都存在的配置项,则以pom.xml为准
具体配置优先级从高到低:pom.xml > user settings > global settings

 
 

三、settings.xml和pom.xml的配置
 
settings.xml元素详解
 
顶级元素概览

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                          https://maven.apache.org/xsd/settings-1.0.0.xsd">

  <localRepository> ... <localRepository/>
  <interactiveMode> ... </interactiveMode>
  <usePluginRegistry> ... </usePluginRegistry>
  <offline> ... </offline>
  <pluginGroups> ... </pluginGroups>
  <servers> ... </servers>
  <mirrors> ... </mirrors>
  <proxies> ... </proxies>
  <profiles> ... </profiles>
  <activeProfiles> ...  </activeProfiles>

</settings>

 
 
1、LocalRepository
作用:该值表示构建系统本地仓库的路径。
其默认值:
linux中在目录    ~/.m2/repository,
windows中在目录   C:\Users\目前用户.m2\repository

<localRepository>${user.home}/.m2/repository</localRepository>

 
 
2、InteractiveMode
作用:表示maven是否需要和用户交互以获得输入。
如果maven需要和用户交互以获得输入,则设置成true,反之则应为false。默认为**重点内容**true。

<interactiveMode>true</interactiveMode>

 
 
3、UsePluginRegistry
作用:maven是否需要使用plugin-registry.xml文件来管理插件版本。
如果需要让maven使用文件~/.m2/plugin-registry.xml来管理插件版本,则设为true。默认为false。

<usePluginRegistry>false</usePluginRegistry>

 
 
4、Offline
作用:表示maven是否需要在离线模式下运行。
如果构建系统需要在离线模式下运行,则为true,默认为false。
当由于网络设置原因或者安全因素,构建服务器不能连接远程仓库的时候,该配置就十分有用。

<offline>false</offline>

 
 
5、PluginGroups
作用:当插件的组织id(groupId)没有显式提供时,供搜寻插件组织Id(groupId)的列表。
该元素包含一个pluginGroup元素列表,每个子元素包含了一个组织Id(groupId)。
当我们使用某个插件,并且没有在命令行为其提供组织Id(groupId)的时候,Maven就会使用该列表。默认情况下该列表包含了org.apache.maven.plugins和org.codehaus.mojo。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
  <pluginGroups>
    <!--plugin的组织Id(groupId) -->
    <pluginGroup>org.codehaus.mojo</pluginGroup>
  </pluginGroups</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值