Maven的简单使用
Maven的百度百科:
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。
变化创建项目和导jar包的方法,变成企业的方法,
maven 项目构建和项目管理
现存在的问题是:没有对jar包进行统一管理,个人与团体之间的jar包没有统一,容易出现不兼容的问题。
使用maven后将会解决和实现:对jar包的统一管理,通过maven仓库来管理,由本地仓库管理所有的jar包,同时对版本进行管理
在这里我使用的是idea2019.1来创建maven项目
创建maven项目
点击不同的选项,就会创建不同的项目
上述的三个参数就是著名的 GAV 座标,
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
当第一次创建maven项目的时候我发现上图的setting.xml是没有这个文件的,在项目创建完成后并且自动导jar包才会出现,这是我们就可以打开这个setting.xml这个文件对里面的内容进行个性化修改
这个在互联网上可以轻松找到,我在这里使用的是阿里云的镜像,因为,感觉阿里云在国内,下载的时候比较快
我修改为了D:/MavenStore/repository====这样不占C盘空间
<localRepository>D:/MavenStore/repository</localRepository>
在D:/MavenStore/repository目录下就可以发现很多jar包
这里使用的是阿里云的镜像
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
项目和仓库作关联=======setting.xml配置文件关联,
点击完成后就创建好了一个普通的maven项目
web的maven项目也是一样的,同理可得
maven的生命周期
简要点就是,
compile 编译
clean 清理
test 测试------测试是单独打包的
install 安装------打包并部署导本地仓库,会生成jar包
ps:当创建的是一个maven web的项目的时候会打包成war包
POM座标–使用maven不需要导入jar包,只需要copy pom座标
座标的组成就是GAV座标
实例如下
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId> <version>4.3.13.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.25.RELEASE</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
scope:用来控制依赖和编译,测试,运行得classpath的关系
complie:默认编译的依赖范围对于编译测试运行均有效
test:测试的依赖范围,只对测试clsspath有效
provided:对于编译,测试的classpath都有效,但对于运行无效
多模块开发
方式一
创建空白项目选择empty project,类似eclipse创建多项目的方式,(不存在父工程)
I创建空工程
II创建模块项目
III调用各模块之间的能力
方式二
父子工程(聚合工程)
1.选择站点模式(见图一)
2.删除src,使其称为父项目,让父项目管理子项目的jar包
3,建立子项目{new module{
quickstart普通项目
webappweb项目}
}
4.模块之间的调用{将开发的模块打包成jar包,放入仓库提供给其他的团队使用}
)
1.选择站点模式(见图一)
2.删除src,使其称为父项目,让父项目管理子项目的jar包
3,建立子项目{new module{
quickstart普通项目
webappweb项目}
}
4.模块之间的调用{将开发的模块打包成jar包,放入仓库提供给其他的团队使用}