Maven使用入门
Maven 使用入门
1. POM 文件
类似于 Ant 的 build.xml 一样,Maven 项目的核心是 pom.xml。POM(Project
Object Model,项目对象模型)定义了项目的基本信息,描述项目如何构建、
声明项目依赖等等。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lichee</groupId> <artifactId>lichee-core</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>lichee-core</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
a) project
所有 pom.xml 的跟元素,声明相关的命名空间及 xsd 元素。
b) modelVersion
指定当前 pom 模型的版本,对于 maven2 及 maven3,都是 4.0.0。
c) groupId
定义项目所属组,往往和项目所在的组织或公司存在关联。简单的理解的话,
可以理解成 package 的包名前缀,例如:com.lichee。
d) artifactId
定义当前 maven 项目在组中唯一的 ID,简单理解的话,可以理解成项目的子模块,
例如:lichee-core、lichee-common 等。每个不同的子模块都应该不一样。
e) version
定义项目的版本信息,所有的模块版本信息应该是一样的。
f) name
一个更友好的项目名称,不是必须,但是推荐为每个 POM 声明 name,便于交流。
g) packaging
定义项目打包方式,例如:jar、pom、war。
h) properties
定义项目的常用属性。
i) dependencie
定义项目依赖的位置(坐标的作用)。
没有实际的 Java 代码,就可以定义一个 maven 项目的 pom。这体现一个优点,
项目对象模型最大程度的与实际代码相独立,可以称它为解耦或者正交性。很大程度上
避免了 Java 代码和 pom 代码的相互影响,升级时修改 pom 文件,Java 的日常开发
也基本不会涉及 pom 文件修改。
2. 项目结构
Maven 一直保持着约定优于配置的思想,并最大化统一构建的标准化,
吸收大量项目的经验,促进团队的标准化。
a) src/main/java
源代码目录,所有 Java 源代码都在此目录。
b) src/main/resources
资源文件目录,所有相关资源文件都在此目录。
c) src/main/webapp
web 项目目录,所有相关 web 文件都在此目录。
d) src/test/java
测试源代码目录,所有 Java 测试源代码都在此目录。
e) src/test/resources
测试资源文件目录,所有相关测试资源文件都在此目录。
f) target
输出目录,maven 构建产生的所有输出文件都在此目录。
3. 常用指令
运行命令是 mvn + … 的方式。
a) archetype:create
创建 Maven 项目。
b) compile
编译源代码
c) test-compile
编译测试代码
d) test
运行应用程序中的单元测试
e) site
生成项目相关信息的网站
f) clean
清除目标目录中的生成结果
g) package
依据项目生成 jar 文件
h) install
在本地 Repository 中安装 jar
i) eclipse:eclipse
生成 eclipse 项目文件
下一篇: linux下制作启动盘命令dd