文档章节

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

kangsheng
 kangsheng
发布于 2017/02/28 15:49
字数 1395
阅读 49
收藏 0
点赞 0
评论 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
博文 3
码字总数 4311
作品 0
娄底
基于Dubbo的分布式系统架构(四)

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

有什么关系呢 ⋅ 2016/11/16 ⋅ 2

生活不止有苟且,还有N个免费DevOps开源工具

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

oschina ⋅ 2016/04/04 ⋅ 21

50+ 最棒的 DevOps 开源工具

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

OSC编辑部 ⋅ 2015/08/10 ⋅ 1

N 个免费 DevOps 开源工具,没用过,至少应该了解!

在介绍Devops工具之前,先跟随码花来了解下:Devops是个啥? Devops=【Development】+【Operations】。 简言之,Devops主要用于开发、测试、运维之间的沟通、协作与整合,减少开发和运营之间...

oschina ⋅ 2016/05/20 ⋅ 20

60 个 DevOps 开源工具,你在用哪些?

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

Mrina Natarajan ⋅ 2016/03/17 ⋅ 0

七年的资深架构师告诉你成为架构师的知识体系

架构师是一个充满挑战的职业,知识面的宽窄往往决定着一个架构师的架构能力 知识面的宽广对于一名出色的架构师来说是必不可少的技能,也许很多人对架构的理解还停留在设计模式,重构,SOA等等...

禁区铁铍人 ⋅ 2017/12/17 ⋅ 0

wms1/MultimediaDesktop

MultimediaDesktop(分布式多媒体共享平台) 本系统为个人毕业设计的系统,采用分布式系统构架,保证服务的稳定性。目前系统已经开发完毕,现开源和大家一起分享学习。系统采用Apache License ...

wms1 ⋅ 2015/05/06 ⋅ 0

Java资源大全(国外程序员推荐篇)

简介:构建这里搜集了用来构建应用程序的工具。Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进...

douxn ⋅ 2015/11/26 ⋅ 0

iBase4J 升级至 1.0.0,使用 mybatis-plus 优化

iBase4J更新至1.0.0,改动较大,以下是更新内容: 使用mybatis-plus优化mybatis; 减少sql开发工作量; iBase4J是基于Java的开源框架搭建的分布式系统架构。 使用Maven对项目进行模块化管理,...

圣翔 ⋅ 2016/09/21 ⋅ 10

开源微信商城--jfinal-wxmall

一直以来找不到合适的开源微信商城,本人最终自主研发,基于jfinal web框架开发出微信商城,微信分销商城,并经过客户锤炼,源码拿来即可对项目进行实施,节省大部分时间去陪老婆。。。创业维...

广州点步 ⋅ 2017/03/18 ⋅ 6

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【elasticsearch】 随笔 Date datatype

一。时间类型的本质 首先json是没有时间类型的,对于es来说,时间类型的标示可以是下面三种情况 1.一个时间格式的字符串,如:"2014-11-27T08:05:32Z","2015-01-01" or "2015/01/01 12:10:3...

xiaomin0322 ⋅ 29分钟前 ⋅ 0

阿里云资源编排ROS使用教程

阿里云资源编排ROS详细内容: 阿里云资源编排ROS使用教程 资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、...

mcy0425 ⋅ 32分钟前 ⋅ 0

适配器设计模式

1、适配器模式 把一个类的接口变换成客户端所期待的另一种接口 使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 分为类的适配器模式和对象的适配器模式 2、类适配器模式 类的适配...

职业搬砖20年 ⋅ 36分钟前 ⋅ 0

npm操作报错 _stream_writable.js:61

有一天 不知道什么原因(估计和node的版本有关),无论你做什么npm的操作 都会报错/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:61 这时候只要执...

lilugirl ⋅ 39分钟前 ⋅ 0

Eclipse安装插件的几种方式

Eclipse魅力之一就是支持可扩展的插件,来丰富自身的功能,这种方式也是建立在开源思想之上的。具体使用什么方式去安装插件,要看我们拿到的是什么。 1. 拿到的是一串URL,如http://subclips...

GordonNemo ⋅ 42分钟前 ⋅ 0

div图片叠加

css实现代码如下: <div style="position: relative;"><!--这个层为外面的父层,需设置相对位置样式--> <div style="position: absolute;"><!--子层,需设置绝对位置样式--> <i......

niithub ⋅ 43分钟前 ⋅ 0

作用域slot

如果父组件需要使用子组件中的内容怎么办,比如父组件需要控制子组件的显示 <div id="root"><child><template slot-scope="props"><h1>{{props.item}} <div>编辑</div></h1><......

金于虎 ⋅ 46分钟前 ⋅ 1

HongHu commonservice-eureka 项目构建过程

上一篇我们回顾了关于 spring cloud eureka的相关基础知识,现在我们针对于HongHu cloud的eureka项目做以下构建,整个构建的过程很简单,我会将每一步都构建过程记录下来,希望可以帮助到大家...

明理萝 ⋅ 49分钟前 ⋅ 1

xml和对象的相互转化

@Data//setter和getter方法,toString和equals,hashcode方法@EqualsAndHashCode//代表重写equals和hashcode方法@XmlAccessorType(XmlAccessType.FIELD)public class Classroom {@X......

拐美人 ⋅ 49分钟前 ⋅ 0

tableView cell的高度 分组头部尾部的高度 自适应

@property (nonatomic) CGFloat rowHeight; // default is UITableViewAutomaticDimension@property (nonatomic) CGFloat sectionHeaderHeight; // default is UITableViewA......

娜一片蓝色星海 ⋅ 50分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部