一、编写POM
Maven项目的核心是pom.xml;
POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖;
POM文件:
二、编写主代码
项目主代码和测试代码不同,项目主代码会被打包到最终的构建中(如jar),而测试代码只在运行测试时用到;
默认情况下,Maven假设项目主代码位于src/main/java目录中,然后在该目录下创建包名和源文件;
HelloWorld.java:
Maven项目的核心是pom.xml;
POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖;
POM文件:
<?xml version="1.0" encoding="UTF-8"?> //XML头,指定xml文档的版本和编码方式
<project xmlns="http://maven.apache.org/POM/4.0.0" //project根元素,命名空间,避免命名重复
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0">
<modleVersion>4.0.0</modleVersion> //modleVersion 当前POM模型版本
<groupId>com.juvenxu.mvnbook</groupId> //groupId 项目属于哪个组
<artifactId>hello-world</artifactId> //artifactId 项目在组中的唯一ID
<version>1.0-SNAPSHOT</version> //version 项目当前版本(SNAPSHOT正在开发、不稳定版本)
<name>Maven Hello World Project</name> //name 一个对用户更友好的项目名称
</project>
没有任何Java代码,就能够定义Maven项目的POM,让项目对象模型最大程度地和实际代码相互独立-解耦;
二、编写主代码
项目主代码和测试代码不同,项目主代码会被打包到最终的构建中(如jar),而测试代码只在运行测试时用到;
默认情况下,Maven假设项目主代码位于src/main/java目录中,然后在该目录下创建包名和源文件;
HelloWorld.java:
public class HelloWorld {
public String sayHello() {
return "Hello Maven";
}
public static void main(String[] args) {
System.out.print(new HelloWorld().sayHello());
}
}
在项目根目录下,运行命令mvn clean compile
C:\Users\chengxiang.peng.QUNARSERVERS\MavenSources\hello-world>mvn clean compile
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Hello World Project 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ hello-world --- //执行clean:clean任务,删除target/目录
[INFO] Deleting C:\Users\chengxiang.peng.QUNARSERVERS\MavenSources\hello-world\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources)