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

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</
  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: maven配置文件settings.xmlMaven全局配置文件,它包含了Maven全局配置信息,如Maven的本地仓库路径、代理服务器、镜像仓库等。在使用Maven构建项目时,Maven会自动读取settings.xml文件的配置信息,以便正确地执行构建任务。用户可以通过修改settings.xml文件来定制Maven的配置,以满足自己的需求。 ### 回答2: Maven是一个开源的项目管理工具,主要用于自动化构建和部署Java应用程序。它通过XML配置文件来进行各种设置,其一个非常重要的配置文件就是settings.xmlsettings.xml文件位于Maven安装目录下的conf文件,可以通过修改该文件来定制Maven的设置和行为。默认情况下,settings.xml文件包含了一些基本的配置项,例如Maven仓库的路径、代理服务器、镜像设置、认证信息等。 在settings.xml文件,我们可以配置Maven全局设置和个人设置。全局设置适用于所有Maven项目,而个人设置只适用于当前用户。全局设置保存在Maven安装目录下的conf/settings.xml文件,而个人设置保存在用户主目录下的.m2/settings.xml文件。 在settings.xml文件,常用的配置项包括: 1. 本地仓库路径:该路径指定本地Maven仓库的位置,可以在该位置下保存所有的Maven构建产物。 <localRepository>/path/to/local/repo</localRepository> 2. 镜像源设置:用于配置Maven下载依赖包和插件时使用的镜像源,可以提高下载速度。常用的镜像源有阿里云、华为云等。 <mirrors> <mirror> <id>alimaven</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> 3. 代理服务器设置:如果你的网络需要通过代理服务器才能连接到互联网,可以在此处设置代理服务器的地址和端口号。 <proxies> <proxy> <id>myproxy</id> <active>true</active> <protocol>http</protocol> <host>proxy.example.com</host> <port>8080</port> </proxy> </proxies> 4. 认证信息设置:如果您的Maven仓库需要用户名和密码才能访问,可以在此处设置认证信息。 <servers> <server> <id>myserver</id> <username>myusername</username> <password>mypassword</password> </server> </servers> 总之,settings.xml文件Maven构建工具非常重要的配置文件,可以影响整个项目的构建和部署。因此,建议开发人员在使用Maven时认真阅读该文件并根据实际情况进行配置。 ### 回答3: Maven是一款开源的构建工具,可以帮助我们自动化地完成Java项目的构建、依赖管理等工作。Maven配置文件settings.xml是非常重要的配置文件之一,它可以帮助我们配置一些Maven全局设置以及对仓库的管理。 settings.xml文件的位置 settings.xml文件位于Maven的配置目录,通常为"~/.m2/settings.xml"(Linux/Unix)或"%USERPROFILE%/.m2/settings.xml"(Windows),其“~”表示用户主目录。如果该目录下没有settings.xml文件,可以执行mvn help:system命令生成默认的settings.xml文件settings.xml文件的作用 settings.xml可以用于配置一些常用的全局设置,例如: - 仓库的位置、访问方式、身份验证信息等; - Maven插件的配置; - 代理服务器的配置; - JDK版本的设置; - POM文件常量的设置; - 等等。 其,最常用的是仓库的配置。 配置仓库 Maven仓库是存放工程构建产生的库文件、依赖库文件的地方。默认情况下,Maven会从仓库进行依赖的下载。仓库对于一些公共的依赖是支持的,但是对于一些私有的依赖则需要配置仓库。 我们可以在settings.xml配置我们自己的私有仓库,以便Maven能够从这个仓库下载需要的依赖。配置仓库可以通过如下几个节点: <servers> # 服务器列表,用于验证访问私有仓库的账号、密码等身份验证信息,例如: <server> <id>my-repository</id> <username>somename</username> <password>somepassword</password> </server> </servers> <repositories> # 仓库列表,用于指定Maven下载和使用依赖的地方,例如: <repository> <id>my-repository</id> <url>http://example.com/maven2</url> <releases> <enabled>true</enabled> <checksumPolicy>fail</checksumPolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <mirrors> # 镜像列表,用于指定Maven下载依赖时的镜像站点,例如: <mirror> <id>my-mirror</id> <name>My Company Mirror</name> <url>http://example.com/maven2</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors> 需要注意的是,如果我们配置了自己的私有仓库,那么我们还需要在POM文件引用这个仓库。 其他配置项 除了仓库以外,settings.xml还可以配置一些其他的常用项,例如: - proxies节点:用于配置代理服务器; - pluginGroups节点:用于配置Maven插件的组; - profiles节点:用于为特定的构建工程指定特定的配置文件; - 常量的设置:例如java.version、encoding等。 总结 settings.xmlMaven最重要的配置文件之一,它可以用于配置全局性的设置,例如仓库、代理服务器、JDK版本等。在实际项目,我们需要对settings.xml进行合理地配置,以便能够更加高效地使用Maven进行工程构建、依赖管理等工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值