前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Maven项目管理工具

Maven项目管理工具

作者头像
HUC思梦
发布2020-09-03 15:46:12
1.6K0
发布2020-09-03 15:46:12
举报

1 什么是maven

Maven是一个跨平台的项目管理工具,主要用于基于java平台的项目构建,依赖管理。

如图为项目构建的过程。

解决的项目的问题:

1、 如果有好几个项目,这好几个项目中,需要用到很多相同的jar包,

能不能只建立一个仓库来解决这个问题?

2、测试方法能不能全部运行呢?

3、怎么样把一个模块的功能放入到仓库中

2 Maven的安装与配置

2.1 Maven的安装

2.1.1 Jdk的情况

Jdk必须1.6以上的版本

2.1.2 从官网下载maven

http://maven.apache.org/官网上下载最新版本的maven

2.1.3 设定path路径

把下载下来的maven解压缩,然后有一个bin文件夹,这是一个bin的文件夹的目录

F:\work\course\maven\maven\bin

把该目录追加到环境变量的path中。

2.1.4 利用命令行检查是否成功

有这个图,说明maven安装成功了。

2.2 建库

2.2.1 先打开路径

C:\Users\Think\.m2

2.2.2 把settings.xml文件复制到上述的路径中

F:\work\course\maven\apache-maven-3.0.5-bin\apache-maven-3.0.5\conf

有一个settings.xml文件,复制到C:\Users\Think\.m2

2.2.3 修改settings.xml文件

<localRepository>F:/work/course/maven/mavenRepository/</localRepository>

指定仓库的路径

在这里mavenRepository就是仓库的路径

2.3 Maven的配置

说明:

bin中存放可执行的二进制文件

conf存放settings.xml文件

lib 运行maven所依赖的jar包

2.4 maven的约定

src/main/java 存放项目的java文件

src/main/resources 存放项目的资源文件,如spring,hibernate的配置文件

src/test/java 存放所有的测试的java文件

src/test/resources 存放测试用的资源文件

target 项目输出位置

pom.xml 文件

3 maven项目

3.1 hello项目

3.1.1 在myeclipse建立一个项目Hello

3.1.2 创建一个包cn.itcast.maven,并在该包下创建一个类

3.1.3 编写Hello类

3.1.4 在src/test/java中创建一个包cn.itcast.maven,创建一个测试类HelloTest

3.1.5 编写测试类

3.1.6 编辑pom.xml文件

说明:

project:表示一个工程

modelVersion:为版本号

3.1.7 用maven命令编译项目(mvn compile)

在命令行出现这样的形式,说明编译OK了。

3.1.8 target文件夹的变化

可以看到编译后的文件全部放入到了target里。

3.1.9 clean

执行命令mvn clean

说明执行成功了。

可以看到target的目录没有了。

3.1.10 test

执行mvn test命令

说明执行成功了,并且运行了一个类,再次看target的结构

说明:

target/classes

存放编译后的类

target/test-classes

存放编译后的测试类

target/surefire-reports

存放测试报告

可以看出,只要进行测试,清理和编译可以自动执行了。

3.1.11 package

执行mvn package

这个界面说明打包成功了。

说明:

target/classes

编译后的类的路径

target/test-classes

编译后的测试类的路径

target/surefire-reports

测试报告

target/maven-archiver

执行package的归档

Hello-0.0.1-SNAPSHOT.jar

执行完package命令后打成的jar包

3.2 Hellofriend项目

3.2.1 建立HelloFriend项目工程

3.2.2 编写pom.xml文件

3.2.3 执行mvn compile命令

执行这个命令的时候会出错,因为HelloFriend项目是建立在Hello项目基础之上的,但是现在工程中没有引入Hello.java这个类。所以会出错。

3.2.4 执行mvn clean install命令

1、 打开命令行

2、 把当前路径调节到Hello工程的根目录

3、 执行mvn clean install命令,把Hello整个工程放入到仓库中

如果执行成功,则会在仓库中看到。

在仓库中的位置。

3.2.5 执行mvn package命令打包HelloFriend工程

说明成功了。

可以看到成功以后,在target目录下多了一个jar包

该jar包为当前工程的jar包。

3.2.6 建立cn.itcast.maven包及HelloFriend类

3.2.7 编辑HelloFriend类

3.2.8 建立cn.itcast.maven包和测试类HelloFriendTest类

3.2.9 编辑HelloFriendTest类

3.2.10 执行mvn package命令

上图中的”say hello”就是输出的结果。

4 maven的核心概念

4.1 项目对象模型

说明:

maven根据pom.xml文件,把它转化成项目对象模型(POM),这个时候要解析依赖关系,然后去相对应的maven库中查找到依赖的jar包。

在clean,compile,test,package等阶段都有相应的Plug-in来做这些事情。

而这些plug-in会产生一些中间产物。

4.2 插件的位置

在maven解压后的位置F:\work\course\maven\maven有一个bin文件夹,里面有

一个文件m2.config文件

set maven.home default ${user.home}/m2,其中该路径指明了仓库的存储位置。

其中settings.xml文件中

这个说明了仓库中的位置。

这里的插件就是执行maven的各种命令所需要的插件。

4.3 maven坐标

4.3.1 maven坐标的主要组成

groupId:定义当前maven项目属于哪个项目

artifactId:定义实际项目中的某一个模块

version:定义当前项目的当前版本

packaging:定义当前项目的打包方式

根据这些坐标,在maven库中可以找到唯一的jar包

4.4 依赖管理

4.5 继承管理

创建一个项目ParentJunit

新建一个项目:

编辑pom.xml文件

说明:只需要继承ParentJunit,所以junit就被引入到HelloJunit中了

4.6 仓库管理

可以根据maven坐标定义每一个jar包在仓库中的存储位置。

大致为:groupId/artifactId/version/artifactId-version.packaging

4.6.1 仓库的分类

本地仓库

~/.m2/repository/

每一个用户也可以拥有一个本地仓库

远程仓库

中央仓库:Maven默认的远程仓库

http://repo1.maven.org/maven2

私服:是一种特殊的远程仓库,它是架设在局域网内的仓库

镜像:用来替代中央仓库,速度一般比中央仓库快

5 maven在myeclipse中的应用

5.1 环境配置

如果所示,myeclipse自带maven,从上图看以看到Maven JDK是可以配置的,这里用了jdk1.6

从上图可以看出,我们可以利用myeclipse自带的maven,也可以使用自己的maven。

上图应用的就是自己的maven。

从最下面可以看出,这是settings.xml文件的路径。

这幅图说明了用户的settings.xml文件的位置和用户的仓库的位置。

这是最基本的环境的配置。

5.2 settings.xml文件

5.2.1 仓库的路径

通过配置localRepository的值可以改变仓库的路径。

5.2.2 配置私服的路径

5.2.3 直接连接互联网

如果不想连接私服,可以直接连接互联网。只需要把连接私服的所有的路径去掉即可。

5.3 创建maven工程

5.3.1 创建java project

选择Maven Project

选择快速创建maven-archetype-quickstart

填写group ID,Artiface Id,Version,Package属性

然后点击finish就可以了。

5.3.2 创建web project

新创建一个web project

添加maven support即可。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-06-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 什么是maven
  • 2 Maven的安装与配置
    • 2.1 Maven的安装
      • 2.1.1 Jdk的情况
      • 2.1.2 从官网下载maven
      • 2.1.3 设定path路径
      • 2.1.4 利用命令行检查是否成功
    • 2.2 建库
      • 2.2.1 先打开路径
      • 2.2.2 把settings.xml文件复制到上述的路径中
      • 2.2.3 修改settings.xml文件
    • 2.3 Maven的配置
      • 2.4 maven的约定
      • 3 maven项目
        • 3.1 hello项目
          • 3.1.1 在myeclipse建立一个项目Hello
          • 3.1.2 创建一个包cn.itcast.maven,并在该包下创建一个类
          • 3.1.3 编写Hello类
          • 3.1.4 在src/test/java中创建一个包cn.itcast.maven,创建一个测试类HelloTest
          • 3.1.5 编写测试类
          • 3.1.6 编辑pom.xml文件
          • 3.1.7 用maven命令编译项目(mvn compile)
          • 3.1.8 target文件夹的变化
          • 3.1.9 clean
          • 3.1.10 test
          • 3.1.11 package
        • 3.2 Hellofriend项目
          • 3.2.1 建立HelloFriend项目工程
          • 3.2.2 编写pom.xml文件
          • 3.2.3 执行mvn compile命令
          • 3.2.4 执行mvn clean install命令
          • 3.2.5 执行mvn package命令打包HelloFriend工程
          • 3.2.6 建立cn.itcast.maven包及HelloFriend类
          • 3.2.7 编辑HelloFriend类
          • 3.2.8 建立cn.itcast.maven包和测试类HelloFriendTest类
          • 3.2.9 编辑HelloFriendTest类
          • 3.2.10 执行mvn package命令
      • 4 maven的核心概念
        • 4.1 项目对象模型
          • 4.2 插件的位置
            • 4.3 maven坐标
              • 4.3.1 maven坐标的主要组成
            • 4.4 依赖管理
              • 4.5 继承管理
                • 4.6 仓库管理
                  • 4.6.1 仓库的分类
              • 5 maven在myeclipse中的应用
                • 5.1 环境配置
                  • 5.2 settings.xml文件
                    • 5.2.1 仓库的路径
                    • 5.2.2 配置私服的路径
                    • 5.2.3 直接连接互联网
                  • 5.3 创建maven工程
                    • 5.3.1 创建java project
                    • 5.3.2 创建web project
                相关产品与服务
                项目管理
                CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档