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元素详解
 
顶级元素概览

"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">

   ... 
   ... 
   ... 
   ... 
   ... 
   ... 
   ... 
   ... 
   ... 
   ...  

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

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

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

<interactiveMode>trueinteractiveMode>

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

<usePluginRegistry>falseusePluginRegistry>

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

<offline>falseoffline>

 
 
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>
    
    <pluginGroup>org.codehaus.mojo

你可能感兴趣的:(bigdata,maven,setting,maven,pox.xml,repository,profiles)