文档章节

Maven工具--项目的分布式开发

kangsheng
 kangsheng
发布于 2017/02/28 15:49
字数 1395
阅读 57
收藏 0

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项目。

 

 

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
kangsheng
粉丝 0
博文 4
码字总数 4311
作品 0
娄底
私信 提问
基于Dubbo的分布式系统架构(四)

基于 Dubbo 的分布式系统架构视频教程 作者:(原著)吴水成,840765167@qq.com,wu-sc@foxmail.com 搭建敏捷高效的持续集成管理平台 1、持续集成介绍 持续集成是一种软件开发实践团队开发成...

有什么关系呢
2016/11/16
161
2
生活不止有苟且,还有N个免费DevOps开源工具

你喜欢免费的东西吗?获得开发者社区支持的自动化,开源的工具是大家梦寐以求的。这里列举了 N多款最棒的开源工具,可以帮助你很好的实行 DevOps。对的,生活不止有眼前的苟且,还有诗和远方的...

oschina
2016/04/04
7K
21
60 个 DevOps 开源工具,你在用哪些?

原文出处:Mrina Natarajan 译文出处:开源中国 你喜欢免费的东西吗?获得开发者社区支持的自动化,开源的工具是大家梦寐以求的。这里列举了 60 多款最棒的开源工具,可以帮助你很好的实行 De...

Mrina Natarajan
2016/03/17
0
0
50+ 最棒的 DevOps 开源工具

你喜欢免费的东西吗?获得开发者社区支持的自动化,开源的工具是大家梦寐以求的。这里列举了 50+ 款最棒的开源工具,可以帮助你很好的实行 DevOps。 大图请点击这里。 开发工具 版本控制&协作...

OSC编辑部
2015/08/10
6.3K
1
徐安(徐工)/distributed-tool-parent

distributed-tool 项目介绍 一个分布式常用工具组件。例如:分布式缓存、分布式序列号生成器、分布式锁、分布式订阅发布等等。 目前微服务开发的系统很多,这个就涉及到分布式集群问题。像以...

徐安(徐工)
08/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

eureka多注册中心

eureka分区的深入讲解

miaojiangmin
15分钟前
1
0
RAM SSO功能重磅发布 —— 满足客户使用企业本地账号登录阿里云

阿里云RAM (Resource Access Management)为客户提供身份与访问控制管理服务。使用RAM,可以轻松创建并管理您的用户(比如雇员、企业开发的应用程序),并控制用户对云资源的访问权限。 对云资...

阿里云官方博客
19分钟前
0
0
Mysql 8.0 | #08004Client does not support authentication protocol requested by server

完整报错 #08004Client does not support authentication protocol requested by server; consider upgrading MySQL client 解决方法 Using the old mysql_native_password works:ALTER ......

云迹
21分钟前
0
0
kylin入门到实战

1.概述 kylin是一款开源的分布式数据分析工具,基于hadoop之上的sql查询接口,能支持超大规模的数据分析。响应时间在亚秒级别,其核心是预计算,计算结果存放在hbase中。 2.特性 可扩展超快O...

hblt-j
24分钟前
0
0
vagrant mac 安装和使用

varant 在mac上使用起来非常的方便,具体的下载步骤可以看这里https://segmentfault.com/a/1190000000264347 这里主要是记录一下配置文件 # -*- mode: ruby -*- # vi: set ft=ruby : # All V...

一千零一夜个为什么
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部