Maven初步学习
https://wiki.jikexueyuan.com/project/maven/ 这是Wiki上关于Maven学习的归纳
从如下方面学习了Maven
- POM
- 仓库
- 创建工程
- 构建&测试工程
- 快照
- 工程文档
POM
Pom代表工程对象模型,它是Maven工作时的基本组件,是一个xml文件,放在工程的根目录下,文件名为pom.xml,它存储了工程和配置的细节信息,Maven利用这些信息来构建工程,每个工程都只有唯一的pom文件。
Pom下的一些配置信息如下:
- Project Dependencies: 工程的依赖信息
- plugins:
- goals:
- build profiles:
- project version:
- developers:
- mailing list:
pom.xml的根元素为project,它包含三个主要节点,groupId, artifactId, version,这样在仓库中工程就具有了唯一的标识groupId:artifactId:version
节点 | 描述
——— |———–
groupId | 这是工程组的标识
artifactId | 这是工程的标识,通常是工程的名称
version | 这是工程的版本号Super POM
所有的Pom都继承自一个Super POM,包含了一些可以被继承的默认设置,Maven 使用 effective pom(Super POM 加上工程自己的配置)来执行相关的目标,它帮助开发者在 pom.xml 中做尽可能少的配置,当然这些配置可以被方便的重写。
可以使用命令mvn help:effective-pom来查看Super POM的配置
仓库
仓库是一个位置,可以用来存储所有的工程的jar文件,library jar文件,插件或是其他的工程制定文件
Maven仓库有三种类型:
- 本地(local)
- *(central)
- 远程(remote)本地仓库
本地仓库是一个本地的文件夹,它在第一次运行maven时候创建,它会将工程所需要的依赖全都下载到本地仓库中。当然可以为不同的工程项目指定不同的本地仓库,intellij idea是在settings下面更改,mac下默认的本地仓库是在/{user.name}/.m2/repository/,可以在%M2_HOME%\conf下的settings.xml里进行修改。
使用<localRepository>%localRepository</localRepository>
进行配置*仓库
*仓库是Maven提供的一个社区仓库,它不需要配置,网络下才能使用,其中包含了大量的常用的库,http://search.maven.org/#browse。
远程仓库
为防在*仓库中也找不到工程所需要的库,会终止并报错,开发人员自己自定义的库,包含了所需要的代码库以及其他工程中用到的jar文件。
<repository> <id>companyname.lib1</id> <url>http://download.companyname.org/maven2/lib1</url> </repository> <repository> <id>companyname.lib2</id> <url>http://download.companyname.org/maven2/lib2</url> </repository> </repositories>
如上进行配置
创建工程
Maven使用原型(archetype)来创建工程,将使用maven-archetype-quickstart插件来创建工程。
-DgroupId=com.companyname.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
上述命令将创建一个如下文件夹结构的工程
文件夹结构 描述 consumerBanking 包含src文件夹和pom.xml src/main/java contains java代码文件 src/main/test contains 测试代码文件
构建&测试工程
构建&测试工程的目的就是生成最后的jar文件,执行命令
mvn clean package
- 我们给了 maven 两个目标,首先清理目标目录(clean),然后打包工程构建的输出为 jar(package)文件。
- 打包好的 jar 文件可以在 consumerBanking\target 中获得,名称为 consumerBanking-1.0-SNAPSHOT.jar。
- 测试报告存放在 consumerBanking\target\surefire-reports 文件夹中。Maven 编译源码文件,以及测试源码文件。
- 接着 Maven 运行测试用例。
- 最后 Maven 创建工程包。
快照
快照是一个特殊的版本,它表示当前开发的一个副本。与常规版本不同,Maven 为每一次构建从远程仓库中检出一份新的快照版本。现在数据服务团队会将每次更新的代码的快照(例如 data-service:1.0-SNAPSHOT)发布到仓库中,来替换旧的快照 jar 文件。
快照 VS 版本
对于版本,Maven 一旦下载了指定的版本(例如 data-service:1.0),它将不会尝试从仓库里再次下载一个新的 1.0 版本。想要下载新的代码,数据服务版本需要被升级到 1.1。对于快照,每次用户接口团队构建他们的项目时,Maven 将自动获取最新的快照(data-service:1.0-SNAPSHOT)。
利用<version>1.0-SNAPSHOT</version>
来制定为版本还是快照虽然Maven每次都自动获取最新的快照,但可以使用命令
mvn clean package -U
来强制Maven下载最新的快照。
工程文档
mvn site
来自动生成文档,保存在target/site/index.html中
推荐阅读
-
Maven初步学习
-
Spring Boot基础学习之Mybatis操作中使用Redis做缓存详解
-
C++Boost库学习之smart_ptr库
-
maven 设置 tomcat 插件编码
-
详解 maven的pom.xml用
解决版本问题 -
JavaFX学习之样例7 博客分类: javafx分享 javafx表可编辑的表TextFiledCheckBox
-
JavaFX学习之样例6 博客分类: javafx分享 javafx计算器
-
JavaFX学习之样例4 博客分类: javafx分享 javamoveevent移动
-
JavaFX学习之样例6 博客分类: javafx分享 javafx计算器
-
Python3 适合初学者学习的银行账户登录系统实例