`
wly719
  • 浏览: 290677 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

maven 配置

 
阅读更多
http://blog.csdn.net/ljfbest/article/details/8045988
我被maven编译的时候,包下下来的问题纠结了好久,看了这篇文章,帮助很大,通过代理方式已经OK,在此记录下。
安装好maven后,想要使用他的一些命令,需要配置环境变量PATH:D:\study\apache-maven-3.0.4\bin

运行mvn命令实际上是执行了Java命令,既然是运行Java,那么运行Java命令可用的参数当然也应该在运行mvn命令时可用。这个时候,MAVEN_OPTS环境变量就能派上用场。 设置MAVEN_OPTS的值为:-Xms128m -Xmx512m,因为Java默认的最大可用内存往往不能够满足Maven运行的需要,比如在项目较大时,使用Maven生成项目站点需要占用大量的内存,如果没有该配置,我们很容易得到java.lang.OutOfMemeoryError。


settings.xml :Maven用户可以选择配置$M2_HOME/conf/settings.xml或者~/.m2/settings.xml。前者是全局范围的,整台机器上的所有用户都会直接受到该配置的影响,而后者是用户范围的,只有当前用户才会受到该配置的影响。 推荐使用用户范围的settings.xml,主要原因是为了避免无意识地影响到系统中的其他用户。如果有切实的需求,需要统一系统中所有用户的settings.xml配置,当然应该使用全局范围的settings.xml。

修改中央仓库位置:修改settings.xml 中 <localRepository>D:/java/repos</localRepository> 即以后下载的东西就在D:/java/repos  拷贝到任一位置当做用户settings.xml

  中央仓库无法访问解决办法,搜了好长时间原来是联通网的原因,无语……

  第一种:http://blog.csdn.net/shycx/article/details/7726600

运行如下命令尝试快速构建一个maven项目:
mvn archetype:generate
结果就有问题:
[INFO] Scanning for projects...
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-clean-plugin:2.4.1: Plugin org.apache.maven.plugins:maven-clean-plugin:2.4.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.4.1
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.3.1/maven-install-plugin-2.3.1.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-install-plugin:2.3.1: Plugin org.apache.maven.plugins:maven-install-plugin:2.3.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-install-plugin:jar:2.3.1
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-deploy-plugin/2.5/maven-deploy-plugin-2.5.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-deploy-plugin:2.5: Plugin org.apache.maven.plugins:maven-deploy-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-deploy-plugin:jar:2.5
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-site-plugin/2.0.1/maven-site-plugin-2.0.1.pom

------

这种hello world级别的操作出错,就怀疑是网络问题,于是让其他同事帮我尝试访问http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom地址,发现完全没问题,感觉异常郁闷。后来网上查了一下,发现是因为联通网络下,无法访问maven.org网站。解决此问题理论上有两个办法,一个是在maven的配置文件中设置代理,另一个是在maven的配置文件中设置联通网络下,能够访问的中央仓库的mirrors。因为也不好找稳定的代理,我就在网上搜索了两个可用的mirror站点,配置方式如下:
1、打开maven配置文件(maven安装目录下的conf目录下的settings.xml文件)
2、搜索mirrors关键字,如果注释说明的下方没有  <mirrors>节点,则建立mirrors节点,带mirrors节点的所有配置如下(复制下面的内容,粘贴到配置文件中即可):
 
 <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
    -->
     <mirror> 
           <id>ibiblio.org</id> 
           <name>ibiblio Mirror of http://repo1.maven.org/maven2/</name> 
           <url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url> 
           <mirrorOf>central</mirrorOf> 
           <!-- United States, North Carolina --> 
     </mirror>
     <mirror>  
         <id>jboss-public-repository-group</id>  
         <mirrorOf>central</mirrorOf>  
         <name>JBoss Public Repository Group</name>  
         <url>http://repository.jboss.org/nexus/content/groups/public</url>  
     </mirror>    
  </mirrors>
第二种:http://www.oschina.net/question/96320_60348


修改host文件夹完美解决 :加入 72.21.81.253    repo1.maven.org





第三种:设置HTTP代理  
有时候你所在的公司由于安全因素考虑,要求你使用通过安全认证的代理访问因特网或无法访问。这种情况下,就需要为Maven配置HTTP代理,才能让它正常访问外部仓库,以下载所需要的资源。 首先确认自己无法直接访问公共的Maven中央仓库,直接运行命令ping repo1.maven.org可以检查网络。如果真的需要代理,先检查一下代理服务器是否畅通,比如现在有一个IP 地址为218.14.227.197,端口为3128的代理服务,我们可以运行telnet  218.14.227.197  3128来检测该地址的该端口是否畅通。如果得到出错信息,需要先获取正确的代理服务信息;如果telnet 连接正确,则输入ctrl+],然后q,回车,退出即可。 检查完毕之后,编辑~/.m2/settings.xml文件(如果没有该文件,则复制$M2_HOME/conf/settings.xml)。添加代理配置如下:  
<
settings> 
-----------
<proxies> 
    <proxy> 
 
      <id>my-proxy</id> 
      <active>true</active> 
      <protocol>http</protocol> 
      <host>218.14.227.197</host> 
      <port>3128</port> 
      <!--  
      <username>***</username> 
      <password>***</password> 
      <nonProxyHosts>repository.mycom.com|*.google.com</nonProxyHosts> 
      --> 
    </proxy> 
  </proxies> 
-----------------
</settings> 
这段配置十分简单,proxies下可以有多个proxy元素,如果你声明了多个proxy元素,则默认情况下第一个被激活的proxy会生效。这里声明了一个id为my-proxy的代理,active的值为true 表示激活该代理,protocol表示使用的代理协议,这里是http。当然,最重要的是指定正确的主机名(host 元素)和端口(port 元素)。上述XML配置中我注释掉了username、password、nonProxyHost几个元素,当你的代理服务需要认证时,就需要配置username和password。nonProxyHost元素用来指定哪些主机名不需要代理,可以使用  |  符号来分隔多个主机名。此外,该配置也支持通配符,如*.google.com表示所有以google.com结尾的域名访问都不要通过代理




pom.xml:

就像Make的Makefile,Ant的build.xml一样,Maven项目的核心是pom.xml。POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。现在我们先为Hello World项目编写一个最简单的pom.xml。


[html] view plaincopyprint?
<?xml version="1.0" encoding="UTF-8"?>     
  <project xmlns="http://maven.apache.org/POM/4.0.0"    
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   http://maven.apache.org/maven-v4_0_0.xsd">     
     
    <modelVersion>4.0.0</modelVersion>     
    <groupId>com.juvenxu.mvnbook</groupId>     
    <artifactId>hello-world</artifactId>     
    <version>1.0-SNAPSHOT</version>     
    <name>Maven Hello World Project</name>     
</project>       

<?xml version="1.0" encoding="UTF-8"?>   
  <project xmlns="http://maven.apache.org/POM/4.0.0"  
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   http://maven.apache.org/maven-v4_0_0.xsd">   
   
    <modelVersion>4.0.0</modelVersion>   
    <groupId>com.juvenxu.mvnbook</groupId>   
    <artifactId>hello-world</artifactId>   
    <version>1.0-SNAPSHOT</version>   
    <name>Maven Hello World Project</name>   
</project>     
代码的第一行是XML头,指定了该xml文档的版本和编码方式。紧接着是project元素,project是所有pom.xml的根元素,根元素下的第一个子元素modelVersion指定了当前POM模型的版本,对于Maven2及Maven3来说,它只能是4.0.0。 这段代码中最重要的是groupId,artifactId和version三行。这三个元素定义了一个项目基本的坐标,在Maven的世界,任何的jar、pom或者war都是以基于这些基本的坐标进行区分的。 groupId定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联,譬如你在googlecode上建立了一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp,如果你的公司是mycom,有一个项目为myapp,那么groupId就应该是com.mycom.myapp。本书中所有的代码都基于groupId com.juvenxu.mvnbook。 artifactId定义了当前Maven项目在组中唯一的ID,我们为这个Hello World项目定义artifactId为hello-world,而在前面的groupId为com.googlecode.myapp的例子中,你可能会为不同的子项目(模块)分配artifactId,如:myapp-util、myapp-domain、myapp-web等等。version指定了Hello World项目当前的版本——1.0-SNAPSHOT。SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。随着项目的发展,version 会不断更新,如升级为1.0、1.1-SNAPSHOT、
1.1、2.0等等。

maven项目骨架archetype:

项目中有一些Maven的约定:在项目的根目录中放置pom.xml,在src/main/java目录中放置项目的主代码,src/main/java/resources存放源代码资源文件,在src/test/java中放置项目的测试代码
简单的运行: mvn archetype:generate 就可以构造出这个骨架 Maven会提示我们输入要创建项目的groupId、artifactId、  version、以及包名package

常用命令:编译源代码: mvn compile   编译测试代码:mvn test-compile     运行测试:mvn test    产生site:mvn site    打包:mvn package   在本地Repository中安装jar:mvn install    清除产生的项目:mvn clean 

分享到:
评论

相关推荐

    maven学校配置maven配置maven配置

    maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置maven配置...

    maven配置阿里云镜像仓库

    maven配置阿里云镜像仓库,maven配置阿里云镜像仓库,maven配置阿里云镜像仓库。

    maven配置文件配置国内阿里云镜像

    maven配置文件配置国内阿里云镜像

    maven配置操作文档

    **Maven配置操作文档** Apache Maven是一个强大的Java项目管理工具,它主要负责项目的构建、依赖管理和项目信息管理。Maven通过使用一个项目对象模型(Project Object Model,POM)来描述项目,并通过插件来执行...

    SpringBoot项目使用maven配置文件

    SpringBoot项目使用maven配置文件是Java后端开发中的常见实践,它可以帮助开发者高效地管理依赖、构建项目以及执行自动化任务。Maven是Apache软件基金会的一个项目,它提供了一个项目对象模型(Project Object Model...

    maven配置.zip

    标题"Maven配置"涉及到的核心内容包括Maven的安装与环境配置、POM.xml文件的理解与编写、本地仓库的设置以及Maven的全局配置等。 1. Maven的安装与环境配置: Maven的安装通常涉及下载最新版本的Maven,解压到指定...

    maven配置阿里云镜像.zip

    标题中的“maven配置阿里云镜像.zip”是一个压缩包,其中包含了帮助用户配置Maven使用阿里云镜像的文件。这个压缩包内可能包括了两份关键文件:`settings.xml`和`pom.xml`。 **settings.xml配置** `settings.xml`...

    Maven配置以及实验

    ** Maven配置及实验详解 ** Maven是一款强大的Java项目管理工具,它可以帮助开发者构建、管理和部署项目。在本文中,我们将详细介绍如何配置Maven,并通过一个简单的“Hello World”项目来实践这一过程。 ### ...

    Java Spring maven配置路径已经仓库地址

    Maven配置路径已经仓库地址 Maven是一种基于项目对象模型(POM)的项目管理工具软件,能够很方便的帮你管理项目报告,生成站点,管理JAR文件等等。官网是https://maven.apache.org/,依赖网址是...

    maven配置教程,图文,阿里云镜像

    ** Maven配置教程 ** Maven是一个强大的项目管理工具,它帮助Java开发者管理和构建项目,通过自动处理项目的依赖关系。在本教程中,我们将详细介绍如何进行Maven的配置,特别是利用阿里云镜像来提高下载速度。 ###...

    maven 配置环境变量

    maven 配置环境变量,需要从官网下载本地程序包,设置电脑的环境变量,开发java project 项目使用maven 仓库,本地maven仓库

    maven配置文件阿里巴巴通用版下载settings-alibaba.xml

    阿里巴巴仓库的maven配置文件,链接国内仓库,下载速度快,只需要配置一下本地仓库地址;阿里巴巴仓库的maven配置文件,链接国内仓库,下载速度快,只需要配置一下本地仓库地址;

    maven配置文件(阿里云)

    maven配置文件(阿里云)

    jdk+maven配置流程

    jdk+maven配置流程,配置手顺,简单快捷。

    maven 配置多仓库

    Maven默认使用中央仓库,但有时我们需要配置多个仓库,例如私有仓库,以提高依赖下载速度或管理内部私有构件。本文将详细介绍如何在Maven中配置多仓库。 ### Maven仓库类型 1. **中央仓库**:Maven官方维护的公共...

    maven 配置注意事项

    本篇文章将详细讲解在配置Maven时需要注意的一些关键点,确保你的开发环境能够顺利运行。 首先,要安装Maven。通常,你需要从Apache官方网站下载最新版本的Maven,并按照安装指南进行安装。在MyEclipse开发环境中,...

    maven 配置

    maven配置,设置仓库路径, 设置远程仓库源

    Maven配置阿里云镜像settings.xml文件

    在安装Maven构建工具后,Maven仓库镜像站点默认是国外的,因为网络原因,在构建项目时下载依赖文件会很慢,甚至有可能下载失败。所以我们一定要把仓库镜像站点改为国内的才能顺利下载,通常比较常用得是阿里云镜像,...

Global site tag (gtag.js) - Google Analytics