Maven工具--项目的分布式开发
Maven工具--项目的分布式开发
kangsheng 发表于9个月前
Maven工具--项目的分布式开发
  • 发表于 9个月前
  • 阅读 46
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: Maven工具在项目的系统开发,开发环境的jar的管理有着十分重要的作用。通俗来说,SVN是管理代码的,Maven是管理项目中jar包的。

1.Maven的下载和基本配置

①可以到Maven的官网上进行下载,下载后的压缩文件进行解压,解压的路径必须是英文,无空格的路径。

如:我的解压文件路径就是    D:\JAVA\Maven\apache-maven-3.2.2

②配置系统环境:新建一个M2_HOME的系统变量,路径值就是maven的解压出来的文件的目录,

         D:\JAVA\Maven\apache-maven-3.2.2

为了方便的使用maven的命令,在Path变量中追加一个maven解压出来的路径中bin文件的路径,

     D:\JAVA\Maven\apache-maven-3.2.2\bin

③配置maven的本地仓库      打开maven的解压路径/conf/setting.xml

   <localRepository>D:/JAVA/Maven/RepMaven</localRepository>  就是指向maven的本地仓库。其中RepMaven就是存放各种依赖或者说jar包的文件夹。

扩:maven的核心文件(也就是上面的maven解压出来的文件)是没有包含各种依赖或者插件(通俗就是jar包),每次要使用到这些插件或者依赖,(如果没有配本地仓库,maven会先在默认仓库中查找,默认仓库是在./m2/repository中)    如果maven配置本地仓库,就会带本地仓库中查找插件,如果还没有找到,就联网到中央仓库去查找,如果还没有,就不存在。

④eclipse中配置maven插件。一般来说,eclipse中都自带有maven插件,在window-preferiens中找到maven,配置installations (这里通过add来指向maven的解压文件) 和配置User Settings (这里就是通过browse来指向maven的解压文件中的/conf/setting.xml)

2.Maven的基本目录结构:

根路径 :文件名

--src  :主要的源文件存放

    --main :主代码和主配置文件

        --java :主代码

        --resources :主配置文件

    --test

        --java :测试代码

        --resource:测试用的而配置文件

--pom.xml :核心的配置文件,用来指定该maven项目的依赖,关系。

 3.基本的maven命令:

①mvn -version 查看mvn的版本信息,一般用来测试是否成功安装

②mvn compile  编译maven主代码,会在项目路径下产生一个target文件,target文件中的classess文件存放编译后的文件

③mvn test-compile  编译maven的测试代码,在target文件中产生一个test-classess文件,存放测试代码编译后的文件

④mvn package  对maven项目进行打包,会在target目录下产生几个文件,其中有一个war包,是可以在tomcat中部署的

⑤mvn clean 清理maven项目

4.maven项目核心文件--pom.xml

setting.xml是maven这一个工具的核心文件,pom.xml是每一个maven项目都会有一个,就是web程序的web.xml文件。

① 在pom.xml中,我们通过三个坐标来指定一个依赖的唯一性。

groupId : 一般是公司或者组织名倒序+项目名

artifactid : 模块的名称

version:版本号。

如:pom.xml中对junit的依赖,maven的好处就是我们不需要自己在项目中一个一个的添加jar包,通过pom.xml,让maven自动的把我们需要的jar包引入。

<groupId>junit</groupId>          
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>

②依赖范围--scope

在上面的例子中,我们看到了scope这个节点,他表示的是依赖范围是test级别的。

maven的依赖范围通俗的说就是依赖的jar作用的时期。主要有三种:

compile依赖范围  : 这是maven默认的依赖范围,表示该依赖(jar包)对主程序的开发有效,和对测试程序的开大也有效,最终会参与到打包中。例如spring-core 的jar包,最后部署到了web的lib文件中。

test依赖范围:一般用于表示该依赖只对测试程序有效,对主程序的开发无效,也不会参与到打包中。例如junit的jar包,开发主程序不需要,最后也不需要要部署到web中的lib文件中。

provided依赖范围:对主程序有效,对测试程序也有效,但是不参与到打包中。例如servlert-api的jar包,我们在eclipse中开发如果没有该jar包,那么httpServlertRequest类就不能用。但是tomcat中又有同样的包,如果部署到lib文件中,就会引起jar冲突。

③依赖的传递性

依赖具有传递性,上一级引入的依赖范围是compile的 jar包,下一级不需要重新引入,会自动的引入上一级引入的jar包。

 

maven工程的种类:

jar:普通的java工程,打包后就是一个堆jar文件。

war:web工程,打包后就是一个web工程,能直接在tomcat中运行

pom:本身没有实际的开发意思,主要作用是制定一些约定,或者说是基础的依赖规范,有点类似于java的抽象类

 

继承机制和聚合机制

继承机制的目标是针对非compile依赖范围(compile范围的也可以用)的jar包的版本的控制问题。通过创建一个pom形式的工程,在pom.xml文件中规定相应依赖的信息。在子工程中,通过pom.xml中parent节点来指向父工程。

聚合机制有点类似于360的一键安装。在pom工程中通过<Modules>节点来要配置一起安装的maven项目。

 

 

 

 

 

 

 

共有 人打赏支持
粉丝 0
博文 3
码字总数 4311
×
kangsheng
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: