从上一篇的讲解中我们知道了什么是Maven,然后它的安装配置,到修改本地仓库,这篇我们用一个实际的例子,带领大家走进我们的Maven之旅。让我们一起来体验一下Maven的高度自动化构建项目的过程。

一、创建HelloMaven项目

  1.1、创建HelloMaven,同时建立创建Maven约定的目录结构和pon.xml文件

    HelloMaven

      | --src
      | -----main
      | ----------java
      | ----------resources
      | -----test
      | ---------java
      | ---------resources
      | --pom.xml

  1.2、编写项目根目录下的pon.xml文件 

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. 3 <modelVersion>4.0.0</modelVersion>
  4. 4 <groupId>com.jxlg.maven</groupId>
  5. 5 <artifactId>Hello</artifactId>
  6. 6 <version>0.0.1-SNAPSHOT</version>
  7. 7 <name>Hello</name>
  8. 8
  9. 9 <!--添加依赖的jar包-->
  10. 10 <dependencies>
  11. 11 <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
  12. 12 <dependency>
  13. 13 <groupId>junit</groupId>
  14. 14 <artifactId>junit</artifactId>
  15. 15 <version>4.9</version>
  16. 16 <scope>test</scope>
  17. 17 </dependency>
  18. 18
  19. 19 </dependencies>
  20. 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,添加如下的代码:

    

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. 3 <modelVersion>4.0.0</modelVersion>
  4. 4 <groupId>com.jxlg.maven</groupId>
  5. 5 <artifactId>OtherMaven</artifactId>
  6. 6 <version>0.0.1-SNAPSHOT</version>
  7. 7 <name>HelloFriend</name>
  8. 8
  9. 9 <!--添加依赖的jar包-->
  10. 10 <dependencies>
  11. 11 <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
  12. 12 <dependency>
  13. 13 <groupId>junit</groupId>
  14. 14 <artifactId>junit</artifactId>
  15. 15 <version>4.9</version>
  16. 16 <scope>test</scope>
  17. 17 </dependency>
  18. 18 <!--项目要使用到Hello的jar包,所以在这里添加Hello的jar包的依赖-->
  19. 19 <dependency>
  20. 20 <groupId>com.jxlg.maven</groupId>
  21. 21 <artifactId>Hello</artifactId>
  22. 22 <version>0.0.1-SNAPSHOT</version>
  23. 23 <scope>compile</scope>
  24. 24 </dependency>
  25. 25 </dependencies>
  26. 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项目构建演练的更多相关文章

  1. 项目构建之maven篇:2.HelloWorld项目构建过程

    文件结构说明: 项目构建生命周期: 清理 编译 測试 打包 执行 部署 清理与编译 hello\pom.xml POM:Project Object Model,项目对象模型 pom.xml与ant的 ...

  2. 取代 Maven?这款项目构建工具性能提升 300%

    在 GitHub 上闲逛的时候,发现了一个新的项目:maven-mvnd,持续霸占 GitHub trending 榜单好几天了. maven-mvnd,可以读作 Maven Daemon,译作 Ma ...

  3. springboot2.0入门(二)-- 基础项目构建+插件的使用

    一.idea中新建第一个HelloWorld项目 点击next: 下一步 在这里可以选择我们需要依赖的第三方软件类库,包括spring-boot-web,mysql驱动,mybatis等.我们这里暂时 ...

  4. maven之一——多模块项目构建

    参考这个帖子: http://www.cnblogs.com/xdp-gacl/p/4242221.html

  5. 用 Maven 做项目构建

    转自:http://www.ibm.com/developerworks/cn/java/j-lo-maven/index.html 本文将介绍基于 Apache Maven 3 的项目构建的基本概念 ...

  6. Java项目工程化之项目构建工具Maven

    欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...

  7. maven——项目构建和依赖管理工具

    apache maven是一个用于项目构建和依赖管理的工具. 添加archetype https://repo1.maven.org/maven2/archetype-catalog.xml 更改本地 ...

  8. gradle入门(1-4)多项目构建实战

    一.多项目构建 1.多项目构建概念 尽管我们可以仅使用单个组件来创建可工作的应用程序,但有时候更广泛的做法是将应用程序划分为多个更小的模块. 因为这是一个非常普遍的需求,因此每个成熟的构建工具都必须支 ...

  9. (转)Maven学习总结(二)——Maven项目构建过程练习

    孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项 ...

随机推荐

  1. c++文件读取(一)---输入类使用和查找当前程序路径

    鉴于公司人员流动大,设计一个小的日志定位器,首先要读取日志文件 用输入输出流类操作文件比c的stdio更安全和容易,当然任何此类观点都是对大牛除外 首先是查找当前文件路径,如果用GetCurrentD ...

  2. Jenkins+Git 持续集成

    持续集成是必要的! 希望达到的效果是:开发同事签入代码后,对应的站点可以自动实现更新.目前还只在在内部服务器上实现开发环境中的站点更新,不涉及到线上的发布. 目前使用Jenkins实现这样的持续集成. ...

  3. .NET学习路线图

    文章转载自「开发者圆桌」一个关于开发者入门.进阶.踩坑的微信公众号 你可以通过百度云盘下载.NET学习路线图相关视频资源 链接: http://pan.baidu.com/s/1pL2gCK7 密码: ...

  4. koahub.js 0.09 发布,新增钩子机制

    koahubjs发布0.09 新增钩子机制添加钩子机制,控制器钩子和函数钩子修复自动加载bug,实现除自动加载导出的default外,还能自动加载其他的方法记koahubjs钩子开发过程在使用koah ...

  5. node.js异步控制流程 回调,事件,promise和async/await

    写这个问题是因为最近看到一些初学者用回调用的不亦乐乎,最后代码左调来又调去很不直观. 首先上结论:推荐使用async/await或者co/yield,其次是promise,再次是事件,回调不要使用. ...

  6. JAVA面试题和答案

    本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能 ...

  7. JDBC-Eclipse & Mysql & Servlet实现

    import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.Dri ...

  8. H5 拖放

    HTML 5 拖放 HTML5 音频 HTML5 画布 拖放(Drag 和 drop)是 HTML5 标准的组成部分. 拖放 拖放是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中, ...

  9. Javascript——依赖注入

    本人才学疏浅,本文只为抛砖引玉,欢迎各路大牛前来斧正,不胜感激! 如今各个框架都在模块化,连前端的javascript也不例外.每个模块负责一定的功能,模块与模块之间又有相互依赖,那么问题来了:jav ...

  10. webStorm在Node.js平台下服务器配置及Express配置

    ************************************** 本博客从此篇开始,将从零基础开始逐渐深入地向各位博友分享node.js学习经验,如有需要请通过新浪微博@牙疼格尔联系博主, ...