pom.xml文件
- 代码的第一行是xml开头,制定了该xml文档的版本和编译方式。
- 紧接着是project元素,project是所有pom.xml的根元素,它还声明了一些POM相关的命名空间及xsd元素,这些元素能让第三方工具帮助我们快速编辑POM
- 项目的基本信息
3.1 modelVersion制定了当前POM模型的版本
3.2 groupId定义了项目属于哪一个组
3.3 artifactId定义了当前Maven项目在组中的唯一ID
3.4 version指定了项目的当前版本,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本 - 代码示例:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.timevalue</groupId>
<artifactId>api</artifactId>
<version>0.0.1</version>
</project>
运行过程解析
- 编写代码注意点
1.1 项目主代码和测试代码不同,项目的主代码会被打包到最终的构建中(如jar),而测试代码只在运行测试时用到,不会被打包。
1.2 一般来说,项目中Java类的包都应该基于项目的groupId和artifactId,这样更加清晰,更加符合逻辑,也方便搜索构建或者Java类。
1.3 clean告诉Maven清理输出目录target/,compile告诉Maven编译项目主代码。
1.4 前面提到groupId,artifactId和version是任何一个项目的最基本的坐标,通过在dependencies元素中添加dependency声明项目所需要的依赖,依赖中的scope为依赖范围,若依赖范围为test则表示该依赖只对测试有效,后面文章会详细介绍添加依赖的注意点。
1.5 暂时需要了解的是,在Maven执行测试(test)之前,它会先自动执行项目主资源处理,主代码编译,测试资源处理,测试代码编译等工作,这是Maven声明周期的一个特性。
1.6 Maven的核心插件compile如果只支持编译Java1.3,需要配置Java的支持。 - 编写代码示例
dependencies
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
JUnit框架的Asset类检查结果
HelloWorld helloWorld = new HelloWorld();
String result = helloWorld.sayHello();
assetEquals("Hello Maven", result)
配置Java支持版本
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins<groupId>
<artifactId>maven-compile-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
打包和运行
- 打包
1.1 命令:mvn clean package
1.2 生成的文件位于target/输出目录中,它是根据artifactId-version.jar规则进行命名的,如有需要,还可以使用finalName来定义该文件的名称。 - 安装到Maven本地仓库命令:mvn clean install
- 其它命令
3.1 编译:mvn clean compile
3.2 测试:mvn clean test - 如果要生成可执行的jar文件,需要借助maven-shade-plugin,配置该插件的方法自行百度。
文章仅供参考,代码并不是全正确,只需要知道在对应的情况,可以做对应的处理,代码是变化的,我相信原理不变