博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
maven管理java项目
阅读量:2444 次
发布时间:2019-05-10

本文共 6076 字,大约阅读时间需要 20 分钟。

一、maven概述

要用java实现一个后台系统,可能需要涉及很多模块。

web应用服务器、文件服务器、db 等等。 我们要开发这些模块,需要先把他们各自需要依赖的jar包或者项目下载打包好,然后配置到项目的classpath中。

这些应用在运行单元测试pr编译or部署的时候,需要依赖本地的一些配置,比如jdk、web容器等,这样我们将项目分享出去的时候,别人要使用就有一定的配置门槛。

maven可以帮我们完成上述所有的工作,不用我们再手工去完成。、

maven将项目看做一个对象。

maven建立了一个仓库体系,来管理这些项目对象。

maven的仓库分为本地仓库和远程仓库(maven提供的中央仓库)。

我们可以通过maven的命令把自己的项目a放到本地仓库中,如果其他项目b需要依赖项目a,则可以直接在本地仓库中找到。

如果我们的项目依赖一些别人的项目,比如jdbc、mybatis,maven会先根据我们的项目属性在本地仓库中去找,若找不到就去中央仓库中去找。

如下图,箭头表示依赖关系。

maven项目对象的部分基础属性

① 项目坐标

    项目坐标用来定位一个项目在仓库中的位置。当项目b依赖项目a或者jdbc时,maven会根据项目坐标属性去从仓库体系中寻找项目,并自动配置到项目依赖中。

② 打包方式。

    这个属性决定我们执行maven的package方法后,项目会被打包成什么文件。

③ 项目依赖列表。

 这个属性的值是一个数组,里边有一些其他项目的坐标。

④ 构建插件列表。

    这个属性是一个数组,定义项目需要的一些插件,比如源码打包工具、web容器

还有一些属性在后边介绍。

 

maven项目对象的部分方法

①mvn compile  编译项目

②mvn package 打包项目

③mvn clean 清除之前编译和打包产生的文件

④mvn install  将项目安装到本地仓库

⑤mvn test 运行测试代码

 

二、maven的安装

① 访问http://maven.apache.org/download.html 下载最新版本

② 解压到maven工作目录,比如d盘根目录

③ 配置maven环境变量

 MAVEN_HOME : D:\apache-maven-3.0.2 

  MAVEN : %MAVEN_HOME%\bin 
  在path 前面 加上 %MAVEN%; 

④ 打开cmd敲 mvn -version, 回车。

    如看到下面信息表示安装成功: 

   

 

三、maven项目结构和项目创建方法

 项目结构:

 

一级目录src为源码目录

  二级目录main/java为项目主要代码目录

    三级目录就是项目的source目录了

  二级目录test/java为项目测试代码目录

    三级目录   测试代码source目录

一级目录 编译、打包产生的文件的存放目录

pom.xml文件——项目对象描述文件,前边讲的项目对象的属性和方法配置就在这个文件里边

   maven项目创建方法

  ① 打开cmd,切换到工作目录,运行

  

  首次运行这个命令maven会下载一大堆依赖的文件,这个不用管。

 ②  填写quickstart参数

  

  按回车,这样就成功的创建了一个maven项目。

  我们填写的几个参数:

  groupId是帮助项目对象在仓库中定位的

  artifactId决定了生成的项目文件夹目录的名称

  version是项目版本号

  package 是项目source文件下最顶层的包名

③ 项目创建成功

 

 

④ 也可以把命令一次敲完 

 

 

四、maven配置文件settings.xml

  在使用maven的时候和仓库相关的一些配置用到了这个文件,所以在这里想讲一讲这个文件。位置:maven\conf\settings.xml。

 

  ① 修改本地仓库位置

  maven默认本地仓库的位置是  用户\.m2  目录 。这个目录在C盘下,和我们的工作区是分开的,不方便管理。另外,如果系统出现啥问题,C盘格式化了,我们的文件就找不回来了。

  <localRepository>D:/java/maven_repo</localRepository>

  修改这个属性,即可修改本地仓库的位置。

    修改了settings.xml后最好在本地仓库里边复制一份,避免maven重装后配置文件丢失

 

  ② 配置maven中央仓库位置

  由于祖国很墙,有时候访问中央仓库网速会特别慢或者干脆不可用,所有我们要配置一个maven中央仓库在国内的镜像服务器。

  我使用的是oschina提供的镜像服务器,项目比较全速度也挺快。

nexus-osc
central
Nexus osc
http://maven.oschina.net/content/groups/public/

 

五、maven项目对象配置文件  pom.xml 解析

  pom.xml是maven项目比较核心的一个文件,所以这部分的内容可以算是重头了。我还是按照描述一个对象的方式来描述这个文件吧。

 ①  pom.xml 对象

4.0.0

 

  这个是pom.xml的壳子,我姑且把它叫做pom对象吧

  ② 坐标属性

  如果我们认为maven仓库是一个空间,那么坐标属性就是项目在这个空间内的 x、y、z 坐标(刚好决定坐标的标签有三个,这么比喻很合适啊:) )。

com.sogou.hi
hi
0.0.1-SNAPSHOT

  任何时候要找到一个项目,只需要有这三个属性就可以了

 

 ③ 项目依赖列表属性

  概述中说过,这个属性是一个数组,那么在xml文件中的表现形式就是下面这样的:

junit
junit
3.8.1
com.sogou.ml
ml-b
0.0.1-SNAPSHOT

 这个依赖列表属性表明,该项目依赖了两个项目 junit和ml-b 。项目依赖还有一些其他的属性,真正用的时候是下面这样的:  

junit
junit
3.8.1
test
com.sogou.ml
ml-b
0.0.1-SNAPSHOT
com.sogou.ml
ml-a

④ 构建过程中使用插件的属性

 这个配置会让我们的项目在运行 mvn package打包的同时将源码也打包,原本target目录下只会出现 xxx.jar ,现在还会出现一个 xxx-source.jar

org.apache.maven.plugins
maven-source-plugin
2.4
package
jar-no-fork

下面这个配置可以让项目打包完成后开始运行web容器,若是web项目就可以在浏览器中访问站点了。

 

org.apache.tomcat.maven
tomcat7-maven-plugin
2.2
package
run

 

 ⑤ 项目聚合属性

  假如我们有好几个项目,需要一起编译打包,挨个打包很麻烦,这个时候我们就可以用聚合属性。

4.0.0
com.sogou.ml
ml-all
0.0.1-SNAPSHOT
pom
ml-all
http://maven.apache.org
../ml-a
../ml-b
../ml-c
UTF-8

  新建一个pom文件,将packaging打包方式修改为pom。

  添加modules属性,这个属性也是一个数组,里边有一些项目文件夹的路径,编译打包这个pom项目的时候,会将modules里边的项目都编译打包。

⑥ 父子项目属性

  新建一个新的maven项目,pom修改如下

4.0.0
com.sogou.ml
ml-parent
0.0.1-SNAPSHOT
pom
ml-parent
http://maven.apache.org
UTF-8
3.8.1
junit
junit
${junit.version}
test

 

  打包方式同样的修改为pom。添加<dependencyManagement>节点,这个节点下是项目依赖属性。

  在此节点下的依赖项目并不会在本项目中生效,但是可以在子项目的依赖中指定依赖,子项目配置如下:

com.sogou.ml
ml-parent
0.0.1-SNAPSHOT
junit
junit

  这样就可以让子项目依赖在父项目中配置的项目了

六、为eclipse安装maven插件

 若我们使用的eclipse中米有maven插件,可以自己下载安装一个。

    

  下载后解压到  eclipse\dropins 目录下即可。

  打开Windows-preference 看到maven说明安装成功。

  

   现在我们创建maven项目、编译打包等操作,都可以用eclipse插件来完成了。

  

转载地址:http://fhtqb.baihongyu.com/

你可能感兴趣的文章
路由配置url跳转传参_如何配置路由器以进行网络范围的URL记录
查看>>
photoshop使用技巧_如何在Photoshop中使用表情符号
查看>>
启用禁用的字段表定义_如何启用或禁用扩展程序以自定义Mac
查看>>
vista任务管理器_在Vista中更改批处理文件的默认编辑器
查看>>
java键盘键入_如何固定键盘键入数字而不是字母
查看>>
ubuntu 重置密码_从Ubuntu Live CD更改或重置Windows密码
查看>>
paint.apk使用方法_使用Paint.NET从Flash摄影中消除红眼
查看>>
启用页面脚本_使用用户脚本启用多列Google搜索
查看>>
e&&&@!d_使用此免费工具为您的D&D活动生成随机地下城
查看>>
切断电线后,在哪里放流动物星球
查看>>
大范围延时摄影 稳定_摄影中的动态范围是什么?
查看>>
apple 西单大悦城维修_如何检查Apple是否已召回MacBook(免费维修)
查看>>
使用化学烧伤创建自定义的详细木材燃烧图案
查看>>
windows10屏幕录制_如何在Windows 10中拍摄屏幕截图
查看>>
splayer解码器怎么装_SPlayer是一款轻巧的优质视频播放器
查看>>
siri早上好捷径分享_如何使Siri更好地了解您
查看>>
安卓 presenter_如何在PowerPoint中使用Presenter View掌握演示文稿
查看>>
taskbar blur_Dual Monitor Taskbar是Windows 7的开源任务栏扩展程序
查看>>
oculus vr开发_如何从PC上将VR视频传输到Oculus(并播放它们)
查看>>
如何管理您的YouTube隐私设置
查看>>