1.1准备

(1)eclipse中使用jdk1.5,不要使用jre,环境变量java_home也要使用1.5

(2)安装maven

解压缩apache-maven-2.0.9.zip%M2_HOME%

比如:D:\software\\apache-maven-2.0.9,在环境变量中增加M2_HOME,在path中添加:“%M2_HOME%\bin” 。

(3)在开发环境中安装m2插件。

üEclipse:直接将共享的m2eclipse插件拷贝到eclipse安装目录对应的pluginfeatures目录下。

ümyEclipse: myEclipse6.5自带了maven4myeclipse,但由于bug超多,在安装之前需要先卸载,手工删除MyEclipse安装目录下myeclipse/eclipse/featuresmyeclipse/eclipse/plugins这两个目录下与maven相关的文件,可以先在这2个目录中搜索一下,带有“maven” 的文件和文件夹全部删除即可,然后再拷贝插件到pluginfeatures目录下。

ü如果需要自行下载m2插件安装,步骤为:help->soft ware updates->find and install->search new features to install->new remote sitename名称输入“maven”,URL为:“http://m2eclipse.sonatype.org/update/”。注意:如果查找到多个“maven_embedder 2.1.0.20080530-2300,只能选择其中一个,否则可能出现安装的插件不可用的错误。

(4)设置“M2_REPO变量”

üwindow >> preferences >> Java >> Build Path >> Classpath Variables,新建一个M2_REPO的变量,变量值指向自己本地数据仓库位置。例如D:/myRepository/repository

(5)将工程导入eclipse中,注意eclipse中的setting.xml与安装mavenconf目录下的setting.xml不同,maven2种级别的setting.xml

ü%M2_HOME%/conf/settings.xml,这是针对该部电脑的所有用户的profiles,是global profiles,它会影响所有的maven project build

ü<your -home-directory>/.m2/settings.xml,这是针对每个用户的profiles,是user级的profiles,它会影响当前用户的所有maven project build

ü将共享的setting.xml拷贝到如图所示的位置中:<your -home-directory>/.m2/settings.xml。修改settings.xmllocalRepository的值为自己的存储位置。

(6)setting.xml配置所指定的repository目录中拷贝maven插件。(目前这些插件没有上传到111.74机器,后续如果跟cmp使用同一个私服的话,使用时会自动下载。)

(7)在工程所在的目录中使用cmd,敲入mvn compile,进行编译,并下载工程依赖的jar包。(jar包较多,需要下载一段时间。)

如果需要经常使用cmd运行maven命令,建议在右键菜单中增加“cmd”,具体方法为:

ü打开“我的电脑”,点击菜单中的“工具”-“文件夹选项”,选择“文件类型”,找到“()资料夹”,点“高级”,“新建”,在“操作”中填入 “CMD”(其实爱填什么都可以),“用于执行操作的应用程序”中填入“cmd.exe /k cd %1,确定。

1.2配置setting.xml

1.2.1指定本地仓库,localRepository如下设置:

<localRepository>D:/myRepository/repository</localRepository>

位置根据自己的存储情况而定,这个位置要跟1.1的第四步设置的路径相同。

1.2.2指定私服,下载jar包。

1<offline>false</offline>

2.设置profile构建环境。

<profiles>
……
<profile><id>artifactory</id> <repositories> <repository> <id>ext-releases-local</id> <url>http://10.164.111.74:8082/artifactory/repo</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>ext-snapshots-local</id> <url>http://10.164.111.74:8082/artifactory/repo</url> <releases> <enabled>false</enabled> </releases> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>plugins-releases-local</id> <url>http://10.164.111.74:8082/artifactory/repo</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>plugins-snapshots-local</id> <url>http://10.164.111.74:8082/artifactory/repo</url> <releases> <enabled>false</enabled> </releases> </pluginRepository> </pluginRepositories> </profile>
<profiles>

3.最后激活该profile

<activeProfiles><activeProfile>artifactory</activeProfile></activeProfiles>

4.附profile配置说明:

< profiles >:我们可以在profile中定义一组我们需要使用的私服上仓库
<profiles><profile><id> artifactory</id>   <!--profile的ID--><repositories><repository><id> ext-snapshots-local</id><!--仓库的id,对应与私服上的Local或Remote仓库--><name>pmp remote snapshot repository</name>                        <!--该仓库的描述-->
<url>http://10.164.79.191:8081/artifactory/libs-snapshots</url>   <!--该仓库的地址-->
<snapshots>                                              <!-- snapshot项--><enabled>true</enabled>      <!--true表示该仓库处理snapshot类型的构件--><updatePolicy>always</updatePolicy>
<!--这里可取值为:always(一直),daily(默认,每日),interval:X(这里X以分钟为单位的时间间隔),或者never(从不)。--><!--Tips:对于snapshot,建议设置为always,它可以保证引用的snapshot版本的构件自动更新--></snapshots><releases>      <!--release项目--><enabled>false</enabled> <!--false表示该仓库不处理Release型的构件--></releases></repository></repositories></profile></profiles>  

1.2.3 如果是代理上网,需设置代理。

如果需要自动下载internet上的jar包,按照如下进行设置。

注意,如果使用:mvn deploy命令部署工程,则需要注释掉该段代码,否则出现http504错误。

<proxies><proxy><id>optional</id><active>true</active><protocol>http</protocol><host>proxycn2.huawei.com</host><port>8080</port><nonProxyHosts>local.net,some.host.com</nonProxyHosts></proxy></proxies>

1.2.4 设置私服的登陆信息。

如果不进行设置,会出现如下错误:

Error deploying artifact: Failed to transfer file: http://10.164.111.74:8082/artifactory/*.jar. Return code is: 401

配置用户密码:

<servers><server><id>artifactory</id><username>admin</username><password>password</password></server></servers> ……<repository><id>internal-artifactory</id><url>http://10.164.111.74:8082/artifactory/repo</url>
</repository>

1.3Maven常用命令

maven定义的主要生命周期:

validate:验证项目是否正确以及相关信息是否可用。

compile:编译。

test:通过junit进行单元测试。

package:根据事先指定的格式(比如jar),进行打包。

integration-test:部署到运行环境中,准备进行集成测试。

verify:对包进行有效性性和质量检查。

install:安装到本地代码库。

deploy:在集成或发布环境,将包发布到远程代码库。

常用命令:

ümvn  archetype:create -DgroupId=com.huawei.bme -DartifactId=test –Dversion=1.0

创建普通应用项目

ümvn archetype:create -DgroupId=com.huawei.bme -DartifactId=testWeb -DarchetypeArtifactId=maven-archetype-webapp

创建WEB项目

ümvn eclipse:eclipse

生成Eclipse项目文件及包引用定义,注意,需事先定义Classpath Variables: M2_REPO,指向本地maven类库目录。

ümvn compile

编译主程序源代码,不会编译test目录的源代码。第一次运行时,会下载相关的依赖包,可能会比较费时。

ümvn test-compile

编译测试代码,compile之后会生成target文件夹,主程序编译在classes下面,测试程序放在test-classes下。

ümvn test

运行应用程序中的单元测试

ümvn site

生成项目相关信息的网站,发布站点在target/site里。

ümvn clean

清除目标目录(target)中的生成结果。

ümvn package

依据项目,打包类型为jar的,在目录target中就会生成jar文件,打包类型为war的,生成 war文件,打包之前会进行编译,测试。

ümvn install

在本地Repository中安装jar

ümvn deploy

在远程Repository中发布。

ümvn install -DskipTests=true

忽略单元测试,在本地Repository中安装jar

ümvn eclipse:clean

清除Eclipse项目文件及包引用定义

ümvn install:install -file -Dfile=D:/opensource/dbunit-2.2/dbunit-2.2.jar -DgroupId=dbunit-DartifactId=junitperf -Dversion=2.2 -Dpackaging=jar

发布到本地仓库

ümvn deploy:deploy -file -DgroupId=staticComparison -DartifactId=static-comparison -Dversion=2.0 -Dpackaging=jar -Dfile=c:/staticComparison_2.0.jar

发布到远程仓库

ümvn help:describe -Dplugin=compiler -Dmojo=compile –Dfull

列出Compiler插件的compile目标的所有信息

üpom: mvn help:effective-pom

查看实际使用的pom

ümvn dependency:analyze

分析项目依赖

1.4 FAQ

1.4.1创建maven工程时报找不到“RELEASE”版本的插件错误

当使用mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app来创建一个新项目时,有时候会出现以下错误:

。。。。。。。[INFO] Velocimacro : initialization complete. 
[INFO] Velocity successfully started. 
[INFO] [archetype:create] 
[INFO] Defaulting package to group ID: com.mycompany.app 
[INFO] 
------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] 
------------------------------------------------------------------------ 
[INFO] Failed to resolve artifact.
GroupId: org.apache.maven.archetypes 
ArtifactId: maven-archetype-quickstart 
Version: RELEASE

Reason: Unable to determine the release version 
Try downloading the file manually from the project website.

Then, install it using the command: 
    mvn install:install-file -DgroupId=org.apache.maven.archetypes 
-DartifactId=maven-arch 
etype-quickstart \ 
        -Dversion=RELEASE -Dpackaging=jar -Dfile=/path/to/file

……

由于在maven本地仓库中,可能更新了某个plug-in的版本,但本地plug-inmetadata没有版本的信息或者没有最新版本的信息,致使maven无法下载正确的版本。具体步骤如下:

1.找到最新的插件版本,如果私服上没有,则需要在网上下载,网址:http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/ 
2.
选择最新版本并且下载最新的“maven-archetype-quickstart-1.0-alpha-4.jar ”文件3.安装这个archetypemaven本地仓库。使用命令如下:mvn install:install-file -DgroupId=org.apache.maven.archtypes -DartifactId=maven-archetype-quickstart -Dversion=1.0-alpha-4 -Dpackaging=jar -Dfile=c:\7000\maven\maven-archetype-quickstart-1.0-alpha-4.jar。注意-Dfile是刚下载的文件的路径。

1.4.2Deploy时出现: http502504错误

网关错误,由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答,deploy时需要向私服上传releasesnapshot版本的归档包,所以出现该错误时要先检查是否可以连接到私服。如果setting.xml中设置了<proxies><proxy>……</proxy></proxies>代理,要取消。

1.4.3Deploy时出现: code 401错误

错误描述为:

Error deploying artifact: Failed to transfer file: http://10.164.111.74:8082/artifactory/*.jar. Return code is: 401

参照1.2.4设置私服登陆信息。

1.4.4mvn eclipse:eclipse导入工程后出现:Unbound classpath variable: M2_REPO错误

建立一个工程后,执行mvn eclipse:eclipse,会产生eclipse的工程文件,但是第一次用eclipse打开工程后,发现报如下错误:Unbound classpath variable: 'M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar' in project my-webapp,需要在Eclipse中配置M2_REPO变量。

配置步骤:window >> preferences >> Java >> Build Path >> Classpath Variables,新建一个M2_REPO的变量,变量值指向你系统的Maven2的数据仓库位置。例如前面提到了D:/myRepository/repository

maven手册(转)相关推荐

  1. maven多模块项目管理及parent标签

    1.题记 最近刚完成一个用Maven构建的Web项目,看了一些Maven方面的书,比如<maven实战>,但还是对Maven多模块项目理解得不清晰,所以花了一点时间好好研究了下,现分享如下 ...

  2. spring 开发环境_设置Spring 3开发环境

    spring 开发环境 本教程简要说明了如何设置典型的环境来开发基于Spring的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. 在教程 ...

  3. 设置Spring 3开发环境

    本教程简要说明了如何设置典型的环境来开发基于Spring的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. 在教程中,我们将需要安装以下组 ...

  4. maven netty 配置_springboot2.3手册:5分钟用Netty搭建高性能异步WebSocket服务

    互联网应用架构:专注编程教学,架构,JAVA,Python,微服务,机器学习等领域,欢迎关注,一起学习. 断更快两个月了,6月份工作忙到飞起,7月份家里又有事,已经累到躺下就想睡觉的程度了. 现在我们 ...

  5. Maven 操作手册

    文章目录 一.基础操作 1. 基础命令 2. maven 下载安装 3. 阿里云仓库 4. maven仓库 5. 引入maven仓库外的jar 6. maven本地仓库位置 7. idea配置mave ...

  6. Maven 使用手册

    文章目录 什么是Maven 作用 项目构建 依赖管理 目录结构 核心概念 POM Maven仓库 本地仓库 远程仓库 中央仓库 私服 坐标 依赖 依赖传递 依赖冲突 路径最短者优先 路径相同先声明优先 ...

  7. maven安装配置手册

    安装Maven 执行命令,切换到opt目录 cd /opt 执行命令,创建maven文件夹 mkdir maven 执行命令,切换到maven目录,下载maven-3.6.3,解压压缩包 cd mav ...

  8. Maven官宣:干掉Maven和Gradle!推出更强更快更牛逼的新一代构建工具,炸裂!

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:网络 相信作为Java开发者的你早已经受够了maven的编译缓慢,但是又由于历史包袱.使用习惯等问题暂时切换不了其他更快的构建 ...

  9. 更快的 Maven 来了!!!性能提升 300%

    欢迎关注方志朋的博客,回复"666"获面试宝典 Maven 经常被拿来和 Gradle 做对比,最大的劣势之一就是 Maven 构建慢,Gradle 比 Maven 构建速度快 2 ...

  10. 是时候装逼了,试试 IDEA 解决 Maven 依赖冲突的高能神器!

    点击关注公众号,Java干货及时送达 来源 | segmentfault.com/a/1190000017542396 1.何为依赖冲突 Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的 ...

最新文章

  1. 对象存储使用案例_连云数据都有“对象存储”了,你还是单身?
  2. CSS hack浏览器兼容一览表
  3. JavaScript中四种不同的属性检测方式比较
  4. 不同sheet 选择若干条件_干货 | 不同加工条件下如何正确选择铣刀
  5. [翻译]Go与C#对比 第三篇:编译、运行时、类型系统、模块和其它的一切
  6. 语言课设医院诊疗系统_江苏孤独症孩子有哪些典型特征?上海六一儿童医院
  7. 利用深度学习识别滑动验证码缺口位置
  8. c#中用声音提示报警
  9. git 微盘_GitHub - 123ufo/VdiskSDK-Android: 微盘Android客户端SDK
  10. js做个人所得税计算器
  11. 【H3C模拟器】配置交换机的链路聚合
  12. 手机多控软件使用全面评测,选择更适合自己的那一款!
  13. unparseable date:‘’
  14. 广东2018c语言二级答案,2018年3月全国计算机二级C语言练习题及答案(2)
  15. 图片 滚动 放大缩小 旋转
  16. HTTP:Form表单的交互与抓包
  17. # 标题Windows最强神器,WIN+R的最骚使用方法!
  18. 虚拟机模拟实机软盘教程
  19. 单片机光敏电阻c语言程序怎么写,STC12C5A60S2 单片机,光敏电阻,步进电机,制作寻光器,始终指向光源...
  20. 第十一章 无线渗透

热门文章

  1. SQL SERVER2000企业版安装过程-如何选择授权模式?
  2. Flink1.12-2021黑马 8 Flink高级特性和新特性
  3. 温肯本科学习回忆录一:简述我的本科专业
  4. 中国互联网用户各阶级的分析
  5. PCB设计经典资料学习汇总
  6. android答辩问题,安卓毕业设计答辩(流程、准备、模板及注意事项)
  7. zheng项目系统简单的分析记录
  8. Invalid bound statement (not found): com.zheng.mapper.UserMapper.login
  9. [经验教程]拼多多购物车在哪里怎么加入购物车合并一起付款?
  10. 如何让工作更有活力?社科院与杜兰大学金融管理硕士项目帮你充电续航