<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.codehaus.mojo</groupId>
<artifactId>my-project</artifactId>
<version>1.0-SNAPSHOT</version>
<name>demo</name>
<packaging>jar</packaging>
</project>
project元素是所有pom.xml的根元素,声明pom相关的命名空间和xsd元素能够让第三方工具帮助我们快速编辑xml。
groupId定义了项目属于那个组,这个组往往和项目所在的公司或组织存在关联,如:com.googlecode.myapp.
artifactId定义了当前maven项目子组中的唯一ID。你可能会为不同的子项目(模块)分配不同的artifaclc,如:myapp-util,myapp-domain,myapp-web等。
version 版本号1.0-SNAPSHOT。
packaging 打包格式jar,war。默认为jar
命令
mvn clean 清楚输出目录target/
mvn clean compile 将项目主代码编译至target/classes目录
mvn clean package 打包,默认为jar
mvn clean install 安装打包好的jar到maven仓库中才能被其他maven项目引用
mvn clean test
在test前会执行compile,执行package前会执行test,install前会执行package
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
scope 依赖范围。如果不生命默认值是compile,对于编译,测试和运行代码都有效
test表示只对测试有效
provided以提供依赖范围。对于编译和测试有效。如serlet-api,便宜和测试时需要依赖,运行的时候容器已经提供,不需要重复引入
runtime运行时范围。对于测试和运行有效。
system系统以来范围。通过systemPath元素显示的指定依赖文件路径,应该谨慎使用
传递性依赖
A以来B,B依赖C,A依赖C
r