使用Maven构建JavaEE项目
学习要点
- Maven简介
- Maven构建项目
- MyEclipse中Maven的使用
Maven简介
Maven作用
- 对第三方依赖库进行统一的版本管理
- 统一的目录结构,统一各平台各IDE目录
- 统一的软件构建阶段
Maven是项目构建工具
- 定义项目的组成、管理项目依赖和发布
下载Maven
- 下载地址:http://maven.apache.org/download.cgi
安装Maven
设置系统环境变量
新增MAVEN_HOME变量,值:D:\apache-maven-3.5.2
PATH添加 %MAVEN_HOME%\bin;
验证安装
使用命令:
mvn help:system //推荐设置完成maven的settings.xml文件后再执行
或者:
mvn -v
Maven构建项目
Maven运行环境配置文件settings.xml
- 定义Maven的全局环境信息
范围
- 全局范围:D:\apache-maven-3.5.0\conf\settings.xml
- 用户范围:C:\Users\Administrator\.m2\settings.xml
- 读取配置:全局范围和用户范围的并集。用户优先级高。一般修改用户配置文件。
仓库
本地仓库:
- 使用localRepository元素更改
远程仓库:
- 中央仓库:https://repo.maven.apache.org/maven2/
- 镜像仓库:使用mirrors元素添加
- 推荐使用阿里云镜像仓库,在用户settings.xml添加以下镜像
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror><mirror>
<!--This is used to direct the public snapshots repo in the profile below over to a different nexus group -->
<id>nexus-public-snapshots</id>
<mirrorOf>public-snapshots</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
</mirror>
JDK版本修改:
默认为1.4,<profiles>节点中增加以下节点配置
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
Maven项目配置文件pom.xml
|
节点 |
含义 |
|
project |
POM文件的顶级元素 |
|
modelVersion |
POM模型版本。描述pom文件所遵循的POM版本。一般填写为4.0.0 |
|
groupId |
项目组织的唯一标识。通常是域名倒写。 |
|
artifactId |
项目唯一标识。对应项目名称。 |
|
version |
artifact的版本。groupId、artifactId、version三者唯唯一确定artifact。 |
|
packaging |
默认值是jar。标识maven会将项目打包成一个jar。 |
|
dependencies |
表示依赖,在子节点dependency中添加具体依赖的项目。 |
|
build |
构建选项 |
Maven命令
- 常用命令
|
命令格式 |
功能 |
|
mvn archetype:generate |
创建maven项目 |
|
mvn compile |
编译源代码 |
|
mvn test-compile |
编译测试代码 |
|
mvn test |
运行测试 |
|
mvn package |
打包项目 |
|
mvn install |
安装到本地仓库 |
- 使用maven命令构建一个控制台项目
1.创建maven调试临时目录E:\Temp\Maven,在cmd窗口进入该目录
2.选择创建项目类型(从远程获取或者从本地选择)
- 远程获取:mvn archetype:generate –x #-x用于查看调试信息
- 本地选择:mvn archetype:generate –DarchetypeCatalog=internal

3.本地选择7——quickstart项目类型(控制台)。输入POM项目信息

4.生成标准maven项目


5.编译HelloWord项目
进入HelloWord目录,mvn编译命令需要依赖POM.xml文件。

编译成功

6.测试编译完成的HelloWord项目
输入命令mvn test进行测试,获得测试结果。

测试结果分析:

7.打包HelloWord项目

打包成功,获得项目jar文件

8.运行HelloWord-1.0.jar项目

- 使用install命令安装java类库到本地仓库
例如ojdbc6.jar无法在远程仓库获取,需要手动安装到本地仓库。
1.把odjdbc6.jar从Oracle安装目录拷贝到Temp(便于安装)
2.输入以下安装命令(需要取消换行)
mvn install:install-file -Dfile=e:\Temp\ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar -DgeneratePom=true
3.进入本地参查看安装完成情况

Maven4MyEclipse插件的使用
- 创建web项目
创建Maven项目。
- 添加web项目依赖
查找依赖官网:http://mvnrepository.com/
- 项目部署
部署到tomcat,和非maven项目无差异。
- junit测试
Maven项目测试需要修改项目属性。非maven工程的项目编译后的.class文件会在/webapp/WEB-INF/classes目录下;maven工程项目编译后的.class文件应该是在/target目录下,源代码的输出应该是/target/classes目录,而测试代码的输出则应该是/target/test-classes目录。修改如下图所示:

- 项目打包
项目run as à run Configurations使用内置的maven打包。
myeclipse 10.6和myeclipse2014 无法与maven 3.5 兼容。
解决方案:将maven3.5 调低如maven3.2.2 即可。
Maven标准目录结构
|
目录 |
说明 |
|
src/main/resources |
资源文件目录。例如application.xml、struts.xml |
|
src/main/java |
Java源代码目录。 |
|
src/test/java |
测试用例代码目录。 |
|
src/test/resources |
测试用例相关资源目录。 |
|
src/main/webapp |
Web项目根目录。 |
|
target |
编译构建输出目录。 |
使用Maven构建JavaEE项目的更多相关文章
- Maven学习- 使用Maven构建Web项目
从网上查了一些资料,才算明白(也就是怎么操作吧),怎么使用Maven构建一个Web项目,找到一篇文档,主要都是从这里学到的: 下载地址:使用Eclipse构建Maven的Web项目.docx 现自己在 ...
- 使用Maven构建Android项目
http://www.ikoding.com/build-android-project-with-maven/ 之前一直在做WEB前端项目,前段时间接手第一个Android项目,拿到代码之后,先试着 ...
- 转】用Maven构建Mahout项目
原博文出自于: http://blog.fens.me/hadoop-mahout-maven-eclipse/ 感谢! 用Maven构建Mahout项目 Hadoop家族系列文章,主要介绍Hadoo ...
- 转】用Maven构建Hadoop项目
原博文出自于: http://blog.fens.me/hadoop-maven-eclipse/ 感谢! 用Maven构建Hadoop项目 Hadoop家族系列文章,主要介绍Hadoop家族产品 ...
- 使用Eclipse maven构建springmvc项目
Eclipse maven构建springmvc项目 Listener 监听器 架构 使用Log4J监控系统日志邮件警报 2014-12-16 13:09:16 控制器在完成逻辑处理后,通常会产生一些 ...
- Maven学习:Eclipse使用maven构建web项目(转)
Maven学习:Eclipse使用maven构建web项目(转) 8.更改class路径:右键项目,Java Build Path -> Source 下面应该有4个文件夹.src/main/j ...
- 利用Eclipse中的Maven构建Web项目(三)
利用Eclipse中的Maven构建Web项目 1.将Maven Project转换成动态Web项目,鼠标右键项目,输入"Project Facets" 2.依据Dynamic W ...
- Eclipse Maven构建WebApp项目资源目录显示不全的原因与解决方式
一.问题展示 1.Eclipse在使用Maven构建WebApp项目的时候,首先Maven的安装和配置都没有问题的,但是构建项目之后,Maven项目要求的几个必须要有的资源目录显示不了: 问题如下图: ...
- 利用Eclipse中的Maven构建Web项目报错(二)
利用Eclipse中的Maven构建Web项目 1.错误描述 [INFO] Scanning for projects... [INFO] [INFO] Using the builder org.a ...
随机推荐
- Asp.net MVC 中使用 Ninject 实现依赖注入
松耦合.针对抽象编程.不针对实现编程是面向对象设计的原则.依赖注入就是,在一个类的内部,不通过创建对象的实例而能够获得实现了某个公开接口的对象引用.所谓的控制反转也是相同的意思.把依赖的创建转移到了使 ...
- 6-12 SVM小结
介绍了SVM的概念以及如何利用SVM进行一个身高体重的训练和预测.如果类别比较简单的话,那么在二维空间上它有可能就是一条直线.如果类别比较复杂,那么投影到高维空间上它就是一个超平面.所以SVM的本质它 ...
- View Programming Guide for iOS ---- iOS 视图编程指南(三)---Windows
Windows Every iOS application needs at least one window—an instance of the UIWindow class—and some m ...
- centos7环境变量配错导致命令不能用
吓得我都不知道挖掘机哪家强了, centos7由于配置环境变量的时候少打了$PATH,导致很多命令不能用了,吓了一跳 解决办法: 1.直接在命令行输入: export PATH=/usr/local/ ...
- JavaScript面向对象轻松入门之综合
javascrpit面向对象之综合 这一章是对前几章的一个总结,通过一个案例来综合认识javascript面向对象的基本用法 需求: 几乎所有的web应用都需要保存数据一些到本地,那么我们就来 ...
- codforces 1C Ancient Berland Circus(几何)
题意 给出正多边形上三个点的坐标,求正多边形的最小面积 分析 先用三边长求出外接圆半径(海伦公式),再求出三边长对应的角度,再求出三个角度的gcd,最后答案即为\(S*2π/gcd\),S为gcd对应 ...
- PJzhang:贷款逾期与失信被执行人
猫宁!!! 最近看到一家网贷机构在APP上的温馨提示,提到了网贷逾期与个人征信的关系以及向客户发放贷款的7项基本原则. 如下: 贷款申请及逾期告知 尊敬的客户,感谢您选择####股份有限公司为您提供贷 ...
- SpringBoot自定义参数解析器
一.背景 平常经常用 @RequestParam注解来获取参数,然后想到我能不能写个自己注解获取请求的ip地址呢?就像这样 @IP String ip 二.分析 于是开始分析 @RequestPara ...
- Jenkins持续集成多任务之MultiJob
项目实践中,我们可能需要在多个任务发布成功后在执行某个任务,这里就需要用到MultiJob这个插件. 案例场景:有3个任务:A.B.C,其中C任务需要等A和B执行成功后才会执行,那么就要先执行A和B, ...
- 浅谈web前端性能优化
前端性能优化: 一.尽可能减少前端http请求. 1.合并优化脚本文件和css文件. 2.同种类型的背景图片尽量放在一起,用css控制显示. 二.使用浏览器缓存. 如果能强制浏览器缓存在本地,将会降低 ...