Maven简介与Maven安装
1.简介
1.1 目标
Maven
是一个自动化构建工具,常用来构建和管理java
项目。
Maven
的主要目的是让开发人员在最短的时间对整个项目的开发状态做一个全面的理解。具体来说,maven
有如下子目标:
- 让构建过程容易
- 提供统一的构建系统
- 提供高质量的项目信息
- 提供最佳开发指导
- 允许透明迁移到新特性
1.2 标准化
Maven对一些构建的细节做了一些屏蔽,因此对开发人员来说是一种解脱,这也让构建过程变得更加容易了许多。
Maven
使用POM
模型和一系列的插件来构建项目(后面会详细介绍),提供了统一的构建系统。一旦你熟悉了使用Maven
构建的项目,那么开发人员机会很快的熟悉其他使用maven
构建的项目,从而节约了时间,这就标准化、统一化带来的好处。
另外,Maven
还提供了很多有用的项目信息,这些信息部分来自于项目的POM
文件,部分来自于项目的源代码,例如:
- 源代码控制产生的change log
- Cross referenced sources
- Mailing lists
- 依赖列表
- 包含代码覆盖率的单元测试报告
对于软件开发流程来讲,maven
采用目前最佳实践的那些开发原则,来引导一个项目朝着正确的方向前进。例如,规范、执行、单元测试报告这些都是使用maven
进行普通构建的一部分内容。单从测试这一块,Maven
将当前测试的最佳实践作为测试指南:
- 测试源代码保持独立,但是源代码树保持并行
- 使用约定俗成的测试用例名称来定位和执行测试用例
- 让测试用例自己负责自己的环境,而不依赖于具体的构建环境
maven
也推荐一些默认的目录结构,这样一来,如果开发人员熟悉了maven
,就会很轻松的上手其他使用maven
构建的项目了。
1.3 应用
maven
是Apache
软件基金会下面的一个开源项目,并且对于大型的、复杂的java
项目的自动化构建是一个给力的工具而被广泛使用。因此学习使用maven
来自动化构建java
项目对于有志于从事java
开发的同学来讲,是非常有必要的。
2 下载安装
对于windows
的下载安装比较简单:
通过链接将文件下载到本地解压,然后将bin文件夹的地址添加到环境变量中即可。
测试安装:打开cmd
,运行
mvn -v
即可查看是否安装配置成功。
对于其他平台的安装方式,可自行参照官网给出的指南。
3 创建Maven项目
3.1 创建项目
安装好了maven
,那就新建一个Maven
项目吧。
以下涉及到一些maven
命令,但由于maven
命令和maven
的插件使用方式需要另开一篇或数篇来详细介绍,因此新建maven
项目过程中涉及到的命令现在大可不必深究,有个初步的印象即可。
- 在合适的文件夹下,运行
mvn archetype:generate
选择org.apache.maven.archetypes:maven-achetype-quickstart
,也就是7
。
- 经过上述的操作后,
maven
会按照固定的文件结构模板为我们生成了一个工程,工程目录结构如下:
- demo
- src
- main
- java
- com
- company
- demo
- App.java
- test
- java
- com
- company
- demo
- AppTest.java
- pom.xml
- demo
自此,成功利用maven
的quickstart
模板创建了一个空的的项目。
3.2 修改POM
添加pom.xml
如下:
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<verbose>true</verbose>
<fork>true</fork>
<executable>${JAVA_HOME}</executable>
</configuration>
<executions>
<execution>
<id>default-compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>default-testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.company.demo.App</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
上面的pom.xml
是对整个项目如何进行自动化构建的配置说明文件,因此看上去比较繁琐,这里不做详细解释,后面会详细介绍pom.xml
。
上述配置主要是配置了两样:
- 编译源码的
JDK
路径 - 程序打包生成的成
jar
包的入口(主类)
然后运行命令
mvn verify
到此,我们成功的配置了maven
如何进行自动化构建,然后编译打包生成了一个可执行的jar
包。
jar
包的位置demo argetdemo-1.jar
执行命令
java -jar demo-1.jar
可以看到输出
hello world!
4 总结
本篇主要简单介绍了maven
是什么,以及maven
在实际软件开发流程中的应用,随后便通过实例展示了如何下载、安装、配置maven
,以及最后利用一些基本的maven
命令新建了一个空的模板项目,并将其打包成了一个可执行的jar
包。
maven
的功能不仅仅是编译、打包一个java
项目那么简单,更多的maven
的功能的使用、一些基本的maven
命令的用法和含义以及maven
插件系统和POM
会在后面介绍。