Maven

Posted lanhaiyue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven相关的知识,希望对你有一定的参考价值。

  • 什么是maven

maven简单来说就说一个管理项目之间依赖关系的工具。最早的时候没有这一类的工具,所以项目之类都是直接依赖,比如lib下加入jar包;后来有了ant,但是ant需要一个很繁琐的配置;于是继续简化就有了maven(convention over configuration(约定优于配置);ant难在一大堆繁琐的配置上,而maven把许多配置改成了约定的东西,所以配置简单)。所以说maven主要就是用来管理项目间依赖关系,同时也有着其他功能。

  • maven安装

官网下载,地址:http://maven.apache.org/download.cgi;下载对应版本,解压,跟配JAVA_HOME一样配置环境变量MAVEN_HOME。然后在命令行输入 mvn -version输出技术图片

说明环境变量配置成功。

从输出可以看出Maven运行以来java,所以说明他也是用jvm来运行的,所以我们可以加一个环境变量MAVEN_OPTS,来控制他使用jvm的参数,比如-Xms128m  -Xmx512m,控制jvm的最大最小内存。

  • maven优点
  1. 配置简单
  2. 支持测试
  3. 构建简单
  4. 支持ci
  5. 插件丰富
  • maven文件夹说明
  1. bin (maven中的可执行命令)
  2. boot(maven的classloader)
  3. conf(maven的配置文件)
  4. lib(maven的依赖包)
  • conf/setting.xml

我觉着这个是maven中最重要的配置文件

<localRepository>:配置maven在下载的jar包在本地的存储路径,windows默认是:当前用户/.m2/repository;

<interactiveMode>:是否开启交互模式;这将确定maven是否在需要输入时提示您。默认是开启的;

<offline>:是否离线;确定maven在执行构建时是否应尝试连接到网络。这将对组件下载,组件部署等产生影响。默认是false;

<pluginGroups>:插件;之前说了他有很多的插件,这个会另写一下详细说;

<proxies>:代理;给maven配一个代理,默认连接到maven中心库,有的时候不稳(明白就好),就可以配一个代理,或者用另一种办法;

  里面的详细解释

  <proxy>

   <id>:唯一标识符;

 

   <active>:该代理是否被激活;

   <protocol>:代理协议;

 

   <host>:主机名;

 

   <port>:端口;

   <username>:用户名;

   <password>:密码;

   <nonProxyHosts>:不被代理的主机名,多个用 | 分割;

<servers>:服务;当我们自己搭建一个maven服务器,而又不能公开的时候就需要用户名密码,或者公钥私钥的方式登录的时候;

<server>

      <id>:唯一标识符;

      <username>:用户名;

      <password>:密码;

    </server>

或者

    <server>

     <id>:唯一标识符;

      <privateKey>:私钥路径

      <passphrase>:密码,不需要的话可以留空;

 

    </server>

<mirrors>:镜像;如果连接中心仓库过慢的话,可以配置为国内的镜像源;

  比如阿里的镜像

  <mirror> 

              <id>alimaven</id> 

              <name>aliyun maven</name> 

              <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 

              <mirrorOf>central</mirrorOf>         

 

         </mirror> 

<profiles>:指定要使用上述一种或多种机制激活的构建过程的一组介绍。 用于继承目的,以及通过<activatedProfiles />激活配置文件或者命令行,配置文件必须具有唯一的ID。它通常包含了id,activation, repositories, pluginRepositories和 properties元素。如果一个settings中的profile被激活,它的值会覆盖任何其它定义在POM中的profile。

  <id>:唯一标识符。

<activation> :触发profile的条件逻辑,即什么条件下触发;例如<jdk>可以指定什么版本的jdk触发,<os>指定什么条件下的操作系统触发;<property>指定什么参数的什么值触发;<file>指定某个文件存在或者不存在的时候触发;

 

  <properties>:属性列表;可以在这里配置一下属性,比如<user.name>$user.home/test</user.install>,当次profile被激活的时候,可以在pom中使用$user.name
  <activeProfiles>:激活profile列表;这个方式配置的所有profile都处于激活状态,如果没有找到对应的profile,正常使用;

 

作者 萌新,如有错误,望请指正,感激不尽!

 

 

-Xms128m  -Xmx512m

以上是关于Maven的主要内容,如果未能解决你的问题,请参考以下文章

Spring+SpringMVC+MyBatis+Maven框架整合

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段

如何在 Apache Felix maven-bundle-plugin 中设置 Provide-Capability 标头?

Maven FTP部署:无法创建目录

如何从詹金斯访问maven属性?

向小军 “小黑” 正式加入 Maven Skateboards