《Maven 实战》笔记之setting.xml介绍

Windows上安装Maven

1.检查JDK:java -v

2.下载maven:https://maven.apache.org/download.cgi 选择apache-maven-3.3.3-bin.zip

3.本地安装:

  解压文件到指定目录下,如D:\apache-maven-3.3.3,在系统变量中新一个M2_HOME变量名,变量值为该安装目录,然后在Path中添加%M2_HOME%\bin,重启命令窗口,输入echo %M2_HOME%,如果输出安装目录,表示配置没问题,再输入mvn -v 输出版本号和path中信息表示安装成功。

seeting.xml文件配置详解

1.配置本地仓库:

  maven默认仓库是:${user.home}/.m2/repository,通常在C盘,随着仓库内容越来越大,放在C盘显然不太好,下面配置是自定义仓库目录。

<localRepository>F:/maven/apache-maven-3.2.5/repo</localRepository>

这里我放在了maven的安装目录下。

2.设置离线模式

如果不想maven连接远程仓库,只使用本地仓库,可将maven设置为离线模式,默认为false。

<offline>false</offline>

3.设置HTTP代理

如果当前网络无法直接连接maven中央仓库,那么就可设置代理连接了。

    <proxy>
          <!-- id -->
          <id>optional</id>
          <!-- 是否启用 -->
          <active>true</active>
          <!-- 协议 -->
          <protocol>http</protocol>
          <username>proxyuser</username>
          <password>proxypass</password>
          <host>proxy.host.net</host>
          <port>80</port>
          <!-- 不使用代理的主机地址 -->
          <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>    

4.设置插件组

  Maven在解析插件仓库元数据的时候,会默认使用org.apache.maven.plugins和org.codehaus.mojo两个groupId。如果增加自定义的插件组可在setting.xml中配置,这样maven在解析命令先会在org/apache/maven/plugins/maven-metadata.xml中找,如果没找到再去org/codehaus/mojo/maven-metadata.xml,如果还没找到就去下面自定义的插件组,如果还没搜索到就报错。

<pluginGroups>
    <pluginGroup>com.your.plugins</pluginGroup>
</pluginGroups>

5.配置服务器认证

如果需要每一个连接maven仓库的连接提供认证信息,才提供相关下载服务,那么可以配置认证。

<servers>
   <server>
      <!-- id与pom中配置的id相同 -->
      <id>depRepo</id>
      <username>user</username>
      <password>pass</password>
   </server>
</servers>
或者
<server>
      <id>siteServer</id>
      <!-- 密匙 -->
      <privateKey>/path/to/private/key</privateKey>
      <!-- 密码 -->
      <passphrase>optional; leave empty if not used.</passphrase>
</server>

6.配置镜像

通常我们直接连接maven中央库下载jar包会比较慢(一是使用的人多,二是中央库在国外),这时如果国内有一个服务器同样可以下载中央库里的所有资源,我们就称它为中央库的镜像,国内镜像越多就能很好的分流,从而提高下载速度。

<mirrors>
   <mirror>
      <id>jboss-public-repository-group</id>
      <name>JBoss Public Repository Group</name>
      <url>http://repository.jboss.org/nexus/content/groups/public</url>
      <mirrorOf>central</mirrorOf>
   </mirror>
</mirrors>

这些镜像地址可以在网上搜索到,其中mirrorOf表示任何对maven中央库的请求都会转到这个镜像上,从而屏蔽掉了maven中央库,如果这个镜像忽然不可用了,那么maven也不会去连接maven中央库。

7.个性化配置

场景一:实现多环境自动切换,如开发环境,生产环境,测试环境。

<profiles>
<!-- 测试环境 -->
  <profile>
    <id>env-test</id>
    <activation>
         <!-- 默认激活该环境 -->
        <activeByDefault>true</activeByDefault>
     </activation>
      <!-- 定义一个属性文件,其他地方只需要${profiles.activation}即可引用里面的值 -->
    <properties>
       <profiles.activation>xmj_old</profiles.activation>
    </properties>
    <build>
      <plugins>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>tomcat-maven-plugin</artifactId>
            <version>1.1</version>
            <configuration>
               <!-- 配置项目自动发布服务器 -->
               <url>http://xx.xx.xx.xx:8080/manager/text</url>
               <path>/xmj-manager</path>
               <server>Tomcat</server>
               <warFile>target/${profiles.activation}.war</warFile>
             </configuration>
          </plugin>
       </plugins>
    </build>
  <profile>
  <!-- 生产环境 -->
  <profile>
    <id>env-production</id>
      <!-- 定义一个属性文件,其他地方只需要${profiles.activation}即可引用里面的值 -->
    <properties>
       <profiles.activation>xmj_new</profiles.activation>
    </properties>
    <build>
      <plugins>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>tomcat-maven-plugin</artifactId>
            <version>1.1</version>
            <configuration>
               <!-- 配置项目自动发布服务器 -->
               <url>http://xx.xx.xx.xx:8080/manager/text</url>
               <path>/xmj-manager</path>
               <server>Tomcat</server>
               <warFile>target/${profiles.activation}.war</warFile>
             </configuration>
          </plugin>
       </plugins>
    </build>
  <profile>
</profiles> 执行profile命令:clean instance  使用默认激活环境,也就是dev-test   clean instance -P env-production 使用 env-production环境构建
 

场景二:配置Nexus仓库

<profile>
        <id>nexus</id>
        <!-- 激活配置 -->
        <activeProfiles>
            <activeProfile>nexus</activeProfile>
        </activeProfiles>
        <!-- 构件仓库 -->
        <repositories>
            <repository>
                <id>public</id>
                <name>Nexus-public</name>
                <url>http://localhost:8081/nexus/content/groups/public/</url>
                <releases><enabled>true</enabled></releases>
                <snapshots><enabled>false</enabled></snapshots>
            </repository>
        </repositories>
        <!-- 插件仓库 -->
        <pluginRepositories>
            <pluginRepository>
                <id>public</id>
                <name>Nexus-public</name>
                <url>http://localhost:8081/nexus/content/groups/public/</url>
                <releases><enabled>true</enabled></releases>
                <snapshots><enabled>false</enabled></snapshots>
            </pluginRepository>
        </pluginRepositories>
    </profile>
<!-- 激活列表,构建时列表的中的profile均被激活 -->
<activeProfiles>
    <activeProfile>env-test</activeProfile>
    <activeProfile>nexus</activeProfile>
</activeProfiles>

  

时间: 2024-08-28 03:23:38

《Maven 实战》笔记之setting.xml介绍的相关文章

Maven学习笔记(一) : 简单介绍

近期在学习<maven实战>,写点东西记录一下.^_^ 何为Maven: Maven主要服务于基于java平台的项目构建.依赖管理和项目信息管理. Maven是优秀的构建工具: Maven可以帮我们自己主动化构建过程,从清理.编译.測试到生成报告,再到打包和部署,我们不须要一步步的输入命令,一次次的点击鼠标.Maven抽象了一个完整的构建生命周期模型. Maven是跨平台的,在不同的系统上能够使用相同的命令. Maven还是一个依赖管理工具和项目信息管理工具: 它提供了中央仓库,能帮我们自己主

maven实战 笔记

maven实战(三)--多模块项目的POM重构 1.重复 举个栗子 1 <dependency> 2 <groupId>org.springframework</groupId> 3 <artifactid>spring-beans</artifactId> 4 <version>2.5</version> 5 </dependency> 6 <dependency> 7 <groupId&g

MAVEN本地仓库配置文件setting修改后不生效的问题

我们复制过来的路径是反斜杠< \ >反斜杠在windows系统中表示目录. xml文件中用的全是顺斜杠, </> 在URL中 ,XML文件中都是用斜杠 这就是我们复制粘贴路径不生效的原因之1 我们既然setting文件修改好了就要在eclipse客户端中进行修改 Global setting 就是我们刚才修改的setting.xml文件的路径 总结 :要成功修改本地MAVEN仓库路径无非做到两件事 1 修改配置:修改maven目录下的setting.xml文件,把本地仓库地址配置上

学习笔记——Maven实战(七)常用Maven插件介绍(上)

我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven-compiler-plugin完成的.进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven-compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,testCompile目标用来编译位于src/test/java/目录下的测试源码. 用户可以通过两种方式调用Maven插

maven -- 基础入门学习笔记(二)之setting.xml配置说明(备忘)

setting.xml配置说明,learn from:http://pengqb.javaeye.com,http://blog.csdn.net/mypop/article/details/6146686 <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:

Maven实战之初识MavenMaven的简单介绍

Maven实战之初识MavenMaven的简单介绍 作用:Maven主要用于项目的构建,管理项目的依赖以及项目的信息(自动化构建.编译.单元测试.生成文档.打包.部署) 优势:相对于Ant.Make等,Maven抽象构建过程,提供构建任务的实现,自动化构建,有效地提高了开发效率,使开发人员可以集中精力在主要的开发任务上.而且Maven是跨平台工具,意味着在主流操作系统中,Maven都提供了对应的技术支持 使用注意:需要在JDK1.4及以上版本使用 Maven的安装下载地址:Maven下载地址,选

《Maven实战》笔记-1-Maven使用入门

<Maven实战>徐晓斌 2011 机械工业出版社 一.介绍 1.名词 artifact:插件 极限编程XP 2.构建脚本: maven--pom.xml(Project Object Model) ant--build.xml 其基本结构是目标(target).依赖(depends),以及实现目标的任务. 3.maven vs ant Ant是过程式的,开发者显示指定每一个目标,以及完成该目标所需要执行的任务. Maven是声明式的,项目构建过程和过程各个阶段所需的工作都由插件实现. 4.相

学习笔记——Maven实战(九)打包的技巧

“打包“这个词听起来比较土,比较正式的说法应该是”构建项目软件包“,具体说就是将项目中的各种文件,比如源代码.编译生成的字节码.配置文件.文档,按照规范的格式生成归档,最常见的当然就是JAR包和WAR包了,复杂点的例子是Maven官方下载页面的分发包,它有自定义的格式,方便用户直接解压后就在命令行使用.作为一款”打包工具“,Maven自然有义务帮助用户创建各种各样的包,规范的JAR包和WAR包自然不再话下,略微复杂的自定义打包格式也必须支持,本文就介绍一些常用的打包案例以及相关的实现方式,除了前

学习笔记——Maven实战(十)Maven 3,是时候升级了

去年10月份Apache Maven发布了3.0正式版,而在上个月的22号,Eclipse基金会宣布了Eclipse 3.7(Indigo)的发布,该版本Eclipse最大的新特性之一就是集成了Maven.下载Eclipse IDE for Java Developers版本的用户会发现,Eclipse已经能够自动识别Maven项目了.Indigo中内置的Maven版本是3.0.2,这在一定程度上说明Maven 3已经非常稳定了.不过我相信一定还有很多Maven 2用户在犹豫是否升级,本文会介绍