首页 > 代码库 > 初识Maven POM
初识Maven POM
POM
Project Object Model项目对象模型定义了项目的基本信息,用于描述项目如何构建,申明项目依赖,等等。
pom元素:
<modelVersion>4.0.0</modelVersion> <groupId>com.fwj.TestMvn</groupId> <artifactId>TestMvn</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>TestMvn</name> <url>http://maven.apache.org</url>
<project></project> 根元素。
<modelVersion>4.0.0</modelVersion>指定当前pom模型的版本,对于Maven2和Maven3来说,它只能是4.0.0
<groupId>com.fwj.TestMvn</groupId>groupId定义了项目属于哪个组,比如公司名字是fwj,项目名是TestMvn,那么groupId应该为com.fwj.TestMvn
<artifactId>TestMvn</artifactId>artifactId定义了当前Maven项目在组中唯一的Id。
<version>0.0.1-SNAPSHOT</version>指定当前项目的版本,snapshot意为快照,说名该项目还处于开发阶段。
<packaging>jar</packaging> 打包形式
<name>TestMvn</name>对于用户给为用好的项目名称,描述项目。
<url>http://maven.apache.org</url>
Java项目的类的包名应该基于groupId和artifactId,这样更加清晰,更加符合逻辑,包名应该为com.fwj.TestMvn.TestMvn
使用Maven进行编译
在项目的根目录下使用mvn clean compile
clean告诉Maven清理输出目录target/
compile告诉Maven编译项目主代码
使用Maven进行测试
mvn clean test
打包
mvn clean package 没有配置打包类型,默认打包jar
mvn clean install 安装包本地Maven仓库
执行test之前会执行compile,执行package之前会执行test,执行install之前会执行package。
构建项目骨架
mvn archetype:generate
管理依赖
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies>
dependencies下包含多个dependency声明项目的依赖。
<scope>test</scope> scope表明依赖范围,若为test则表明依赖只对测试有用。如果在主代码中inport Junit代码,就会造成编译错误。如果不声明依赖翻译,则默认值就是compile,表明该代码对主代码和测试代码都有效。
初识Maven POM