Maven(二)之Maven项目构建演练
从上一篇的讲解中我们知道了什么是Maven,然后它的安装配置,到修改本地仓库,这篇我们用一个实际的例子,带领大家走进我们的Maven之旅。让我们一起来体验一下Maven的高度自动化构建项目的过程。
一、创建HelloMaven项目
1.1、创建HelloMaven,同时建立创建Maven约定的目录结构和pon.xml文件
HelloMaven
| --src
| -----main
| ----------java
| ----------resources
| -----test
| ---------java
| ---------resources
| --pom.xml
1.2、编写项目根目录下的pon.xml文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 <modelVersion>4.0.0</modelVersion>
4 <groupId>com.jxlg.maven</groupId>
5 <artifactId>Hello</artifactId>
6 <version>0.0.1-SNAPSHOT</version>
7 <name>Hello</name>
8
9 <!--添加依赖的jar包-->
10 <dependencies>
11 <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
12 <dependency>
13 <groupId>junit</groupId>
14 <artifactId>junit</artifactId>
15 <version>4.9</version>
16 <scope>test</scope>
17 </dependency>
18
19 </dependencies>
20 </project>
1.3、在D:\HelloMaven\src\main\java\com\jxlg\maven下创建Hello.java
代码为:

1.4、在D:\HelloMaven\src\test\java\com\jxlg\maven下创建TestHello.java

二、使用Maven编译、清理、测试、打包项目
2.1、使用maven编译项目,编译项目的命令是:"mvn compile"

编译成功之后,可以看到hello项目的根目录下多了一个【target】文件夹,这个文件夹就是编译成功之后Maven帮我们生成的文件夹,
打开【target】文件夹,可以看到里面有一个【classes】文件夹,【classes】文件夹中存放的就是Maven我们编译好的java类

2.2、使用maven清理项目,清理项目的命令:"mvn clean"

2.3、使用Maven测试项目,测试项目的命令是:"mvn test"

测试成功之后,可以看到hello项目的根目录下多了一个【target】文件夹,这个文件夹就是测试成功之后Maven帮我们生成的文件夹,
打开【target】文件夹,可以看到里面有一个【classes】和【test-classes】文件夹

也就是说,我们执行执行"mvn test"命令测试项目时,Maven先帮我们编译项目,然后再执行测试代码。
2.4、使用Maven打包项目,打包项目的命令是:"mvn package"


打包成功之后,可以看到hello项目的根目录下的【target】文件夹中多了一个Hello-0.0.1-SNAPSHOT.jar,这个Hello-0.0.1-SNAPSHOT.jar就是打包成功之后Maven帮我们生成的jar文件

2.5、使用Maven部署项目,部署项目的命令是:"mvn install"
进入Hello项目根目录执行"mvn install"命令测试项目


安装成功之后,首先会在hello项目的根目录下生成【target】文件夹,打开【target】文件夹,可以看到里面会有Hello-0.0.1-SNAPSHOT.jar,这个Hello-0.0.1-SNAPSHOT.jar就是安装成功之后Maven帮我们生成的jar文件

除此之外,在我们存放Maven下载下来的jar包的仓库也会有一个Hello-0.0.1-SNAPSHOT.jar,所以Maven安装项目的过程,实际上就是把项目进行【清理】→【编译】→【测试】→【打包】,再把打包好的jar放到我们指定的存放jar包的Maven仓库中

所以使用"mvn install"命令,就把maven构建项目的【清理】→【编译】→【测试】→【打包】的这几个过程都做了,同时将打包好的jar包发布到本地的Maven仓库中,所以maven最常用的命令还是"mvn install",这个命令能够做的事情最多。
2.6、组合使用maven的命令
maven的编译,清理,测试,打包,部署命令是可以几个命令同时组合起来使用的,常用的命令组合如下:

还有的就是"mvn clean test","mvn clean package","mvn clean install",这些组合命令都比较常用。
三、在别的项目中通过使用Maven安装生成的项目jar包
在上面,我们使用mvn install命令将hello这个项目打包成了Hello-0.0.1-SNAPSHOT.jar包并且发布到本地的maven仓库E:\AStudySoftwere\mavenrepository\com\jxlg\maven\Hello\0.0.1-SNAPSHOT
中,那我们该怎么去使用这个Hello-0.0.1-SNAPSHOT.jar包呢?
第一步:新建OtherMaven项目,同时建立Maven约定的目录结构和pom.xml文件
OtherMaven
| --src
| -----main
| ----------java
| ----------resources
| -----test
| ---------java
| ---------resources
| --pom.xml
第二步:编辑项目OtherMaven根目录下的pom.xml,添加如下的代码:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 <modelVersion>4.0.0</modelVersion>
4 <groupId>com.jxlg.maven</groupId>
5 <artifactId>OtherMaven</artifactId>
6 <version>0.0.1-SNAPSHOT</version>
7 <name>HelloFriend</name>
8
9 <!--添加依赖的jar包-->
10 <dependencies>
11 <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
12 <dependency>
13 <groupId>junit</groupId>
14 <artifactId>junit</artifactId>
15 <version>4.9</version>
16 <scope>test</scope>
17 </dependency>
18 <!--项目要使用到Hello的jar包,所以在这里添加Hello的jar包的依赖-->
19 <dependency>
20 <groupId>com.jxlg.maven</groupId>
21 <artifactId>Hello</artifactId>
22 <version>0.0.1-SNAPSHOT</version>
23 <scope>compile</scope>
24 </dependency>
25 </dependencies>
26 </project>
第三步:在D:\OtherMaven\src\main\java\com\jxlg\maven目录下新建文件OtherMaven.java

代码为:

第四步:在/src/test/java/com/jxlg/maven目录下新建测试文件HelloTest.java
代码为:

第五步:在OtherMaven目录下执行命令"mvn package"测试Hello-0.0.1-SNAPSHOT.jar里面的类是否引用成功
Maven(二)之Maven项目构建演练的更多相关文章
- 项目构建之maven篇:2.HelloWorld项目构建过程
文件结构说明: 项目构建生命周期: 清理 编译 測试 打包 执行 部署 清理与编译 hello\pom.xml POM:Project Object Model,项目对象模型 pom.xml与ant的 ...
- 取代 Maven?这款项目构建工具性能提升 300%
在 GitHub 上闲逛的时候,发现了一个新的项目:maven-mvnd,持续霸占 GitHub trending 榜单好几天了. maven-mvnd,可以读作 Maven Daemon,译作 Ma ...
- springboot2.0入门(二)-- 基础项目构建+插件的使用
一.idea中新建第一个HelloWorld项目 点击next: 下一步 在这里可以选择我们需要依赖的第三方软件类库,包括spring-boot-web,mysql驱动,mybatis等.我们这里暂时 ...
- maven之一——多模块项目构建
参考这个帖子: http://www.cnblogs.com/xdp-gacl/p/4242221.html
- 用 Maven 做项目构建
转自:http://www.ibm.com/developerworks/cn/java/j-lo-maven/index.html 本文将介绍基于 Apache Maven 3 的项目构建的基本概念 ...
- Java项目工程化之项目构建工具Maven
欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...
- maven——项目构建和依赖管理工具
apache maven是一个用于项目构建和依赖管理的工具. 添加archetype https://repo1.maven.org/maven2/archetype-catalog.xml 更改本地 ...
- gradle入门(1-4)多项目构建实战
一.多项目构建 1.多项目构建概念 尽管我们可以仅使用单个组件来创建可工作的应用程序,但有时候更广泛的做法是将应用程序划分为多个更小的模块. 因为这是一个非常普遍的需求,因此每个成熟的构建工具都必须支 ...
- (转)Maven学习总结(二)——Maven项目构建过程练习
孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项 ...
随机推荐
- Python基础入门教程(4)(数据类型)
人生苦短,我学Pyhton Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于199 ...
- 【解题报告】VijosP1351 棋盘制作
思路: 1. 矩形:用f[i][j][1]表示右下角为(I,j),最大的,符合条件的矩形的长,用f[i][j][2]表示右下角为(I,j),最大的,符合条件的矩形的高,预设f内所有元素为1 If(a[ ...
- UVa1587 盒子
前言 第一次刷题,ac的感觉真的很棒! 题目 题目 大意是说,输入6个面,判断是否是个长方体. 思路 根据长方体的特质来判断,比如说6个面中3个面是相互对应的,只有3条不同的边等等. 我就知道我肯定会 ...
- 当前最上层的视图控制器vc 和 当前最上层的导航控制器nav
在处理 URL Router 跳转的时候,我们经常需要得到 当前最上层的视图控制器 和 当前最上层的导航控制器 来进行视图跳转或者方法调用.- (UIViewController *)currentV ...
- javascript中parseint和number的区别
本来是不想写这个的,网上也有,问题是讲得很不清楚,或者说我阅读能力差吧. 首先,解释一下定义的区别: parseInt将字符串(String)类型转为整数类型.Number() 函数把对象(Objec ...
- webStorm Linux Ubuntu 中文搜狗输入问题
1 打开安装路径下bin/webstorm.sh vim ~/WebStorm-145.597.6/bin/webstorm.sh 2.在打开文件的最前面加入如下代码: export XMODIFIE ...
- matplotlib根据Y轴数量伸缩画图的py脚本
#coding:utf-8import numpy as npimport matplotlib.pyplot as plt #X,Y轴数据y = [20,59,11,12,16,20,15,12,1 ...
- 分享自己使用CSS的public
body,ol,ul,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fieldset,legend,input,textarea,select,td,figure{marg ...
- PHP语言开发微信公众平台(订阅号)之开启开发者模式
(1)打开上一篇我们从花生壳官网获得的外网网址就会看到localhost根目录下的文件(这里不再赘述php环境的搭建).注:因为外网网址在能联网时,访问外网网址的任何人都能看到根目录下的所有文件,不仅 ...
- Spring使用注解进行事务的管理
使用步骤: 步骤一.在spring配置文件中引入<tx:>命名空间 <beans xmlns="http://www.springframework.org/schema/ ...