maven手册(转)
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安装目录对应的plugin和features目录下。
ümyEclipse: myEclipse6.5自带了maven4myeclipse,但由于bug超多,在安装之前需要先卸载,手工删除MyEclipse安装目录下myeclipse/eclipse/features和myeclipse/eclipse/plugins这两个目录下与maven相关的文件,可以先在这2个目录中搜索一下,带有“maven” 的文件和文件夹全部删除即可,然后再拷贝插件到plugin和features目录下。
ü如果需要自行下载m2插件安装,步骤为:help->soft ware updates->find and install->search new features to install->new remote site,name名称输入“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与安装maven后conf目录下的setting.xml不同,maven有2种级别的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.xml中localRepository的值为自己的存储位置。
(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-in的metadata没有版本的信息或者没有最新版本的信息,致使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.安装这个archetype到maven本地仓库。使用命令如下: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时出现: http502、504错误
网关错误,由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答,deploy时需要向私服上传release或snapshot版本的归档包,所以出现该错误时要先检查是否可以连接到私服。如果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手册(转)相关推荐
- maven多模块项目管理及parent标签
1.题记 最近刚完成一个用Maven构建的Web项目,看了一些Maven方面的书,比如<maven实战>,但还是对Maven多模块项目理解得不清晰,所以花了一点时间好好研究了下,现分享如下 ...
- spring 开发环境_设置Spring 3开发环境
spring 开发环境 本教程简要说明了如何设置典型的环境来开发基于Spring的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. 在教程 ...
- 设置Spring 3开发环境
本教程简要说明了如何设置典型的环境来开发基于Spring的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. 在教程中,我们将需要安装以下组 ...
- maven netty 配置_springboot2.3手册:5分钟用Netty搭建高性能异步WebSocket服务
互联网应用架构:专注编程教学,架构,JAVA,Python,微服务,机器学习等领域,欢迎关注,一起学习. 断更快两个月了,6月份工作忙到飞起,7月份家里又有事,已经累到躺下就想睡觉的程度了. 现在我们 ...
- Maven 操作手册
文章目录 一.基础操作 1. 基础命令 2. maven 下载安装 3. 阿里云仓库 4. maven仓库 5. 引入maven仓库外的jar 6. maven本地仓库位置 7. idea配置mave ...
- Maven 使用手册
文章目录 什么是Maven 作用 项目构建 依赖管理 目录结构 核心概念 POM Maven仓库 本地仓库 远程仓库 中央仓库 私服 坐标 依赖 依赖传递 依赖冲突 路径最短者优先 路径相同先声明优先 ...
- maven安装配置手册
安装Maven 执行命令,切换到opt目录 cd /opt 执行命令,创建maven文件夹 mkdir maven 执行命令,切换到maven目录,下载maven-3.6.3,解压压缩包 cd mav ...
- Maven官宣:干掉Maven和Gradle!推出更强更快更牛逼的新一代构建工具,炸裂!
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:网络 相信作为Java开发者的你早已经受够了maven的编译缓慢,但是又由于历史包袱.使用习惯等问题暂时切换不了其他更快的构建 ...
- 更快的 Maven 来了!!!性能提升 300%
欢迎关注方志朋的博客,回复"666"获面试宝典 Maven 经常被拿来和 Gradle 做对比,最大的劣势之一就是 Maven 构建慢,Gradle 比 Maven 构建速度快 2 ...
- 是时候装逼了,试试 IDEA 解决 Maven 依赖冲突的高能神器!
点击关注公众号,Java干货及时送达 来源 | segmentfault.com/a/1190000017542396 1.何为依赖冲突 Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的 ...
最新文章
- 对象存储使用案例_连云数据都有“对象存储”了,你还是单身?
- CSS hack浏览器兼容一览表
- JavaScript中四种不同的属性检测方式比较
- 不同sheet 选择若干条件_干货 | 不同加工条件下如何正确选择铣刀
- [翻译]Go与C#对比 第三篇:编译、运行时、类型系统、模块和其它的一切
- 语言课设医院诊疗系统_江苏孤独症孩子有哪些典型特征?上海六一儿童医院
- 利用深度学习识别滑动验证码缺口位置
- c#中用声音提示报警
- git 微盘_GitHub - 123ufo/VdiskSDK-Android: 微盘Android客户端SDK
- js做个人所得税计算器
- 【H3C模拟器】配置交换机的链路聚合
- 手机多控软件使用全面评测,选择更适合自己的那一款!
- unparseable date:‘’
- 广东2018c语言二级答案,2018年3月全国计算机二级C语言练习题及答案(2)
- 图片 滚动 放大缩小 旋转
- HTTP:Form表单的交互与抓包
- # 标题Windows最强神器,WIN+R的最骚使用方法!
- 虚拟机模拟实机软盘教程
- 单片机光敏电阻c语言程序怎么写,STC12C5A60S2 单片机,光敏电阻,步进电机,制作寻光器,始终指向光源...
- 第十一章 无线渗透
热门文章
- SQL SERVER2000企业版安装过程-如何选择授权模式?
- Flink1.12-2021黑马 8 Flink高级特性和新特性
- 温肯本科学习回忆录一:简述我的本科专业
- 中国互联网用户各阶级的分析
- PCB设计经典资料学习汇总
- android答辩问题,安卓毕业设计答辩(流程、准备、模板及注意事项)
- zheng项目系统简单的分析记录
- Invalid bound statement (not found): com.zheng.mapper.UserMapper.login
- [经验教程]拼多多购物车在哪里怎么加入购物车合并一起付款?
- 如何让工作更有活力?社科院与杜兰大学金融管理硕士项目帮你充电续航