maven 配置

转载自 http://blog.csdn.net/ljfbest/article/details/8045988


安装好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 plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>      
  2.   <project xmlns="http://maven.apache.org/POM/4.0.0"     
  3.           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">      
  4.       
  5.     <modelVersion>4.0.0</modelVersion>      
  6.     <groupId>com.juvenxu.mvnbook</groupId>      
  7.     <artifactId>hello-world</artifactId>      
  8.     <version>1.0-SNAPSHOT</version>      
  9.     <name>Maven Hello World Project</name>      
  10.  </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 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Maven是一个强大的构建工具,用于管理Java项目的依赖和构建过程。在进行Maven配置之前,你需要确保已经安装了Maven,并将其加入到系统环境变量中。 以下是一些基本的Maven配置步骤: 1. 创建一个Maven项目:使用命令行或者集成开发环境(IDE)创建一个新的Maven项目。在项目根目录下会生成一个pom.xml文件,用于定义项目的配置信息。 2. 配置pom.xml:打开pom.xml文件,可以配置项目的依赖、插件、构建目标等。在 `<dependencies>` 标签内添加你所需的依赖项,例如: ```xml <dependencies> <dependency> <groupId>group-id</groupId> <artifactId>artifact-id</artifactId> <version>version</version> </dependency> </dependencies> ``` 3. 配置仓库:Maven默认从中央仓库下载依赖项,你也可以配置其他仓库。在pom.xml的 `<repositories>` 标签内添加仓库配置,例如: ```xml <repositories> <repository> <id>repo-id</id> <url>http://example.com/repo</url> </repository> </repositories> ``` 4. 执行Maven命令:使用命令行或者IDE提供的Maven插件执行Maven命令,例如构建项目、运行测试等。常用的命令包括: - `mvn clean`: 清理项目构建产生的文件。 - `mvn compile`: 编译项目。 - `mvn test`: 运行项目的测试。 - `mvn package`: 打包项目。 - `mvn install`: 将项目安装到本地仓库。 这些是基本的Maven配置步骤,你可以根据项目的具体需求进一步配置和使用Maven

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值