Maven安装建议

1.设置MAVEN_OPTS环境变量
2.配置用户范围settings.xml
用户范围配置路径为~/.m2/settings.xml,这样可以避免影响到系统中的其他用户,而且还便于Maven升级,否则每次升级都要修改$M2_HOME/conf/settings.xml文件。
3.不要使用IDE内嵌的Maven
内嵌的Maven通常比较新,但不一定稳定,而且往往和命令行使用的Maven不是一个版本,容易造成构建行为的不一致。

Maven坐标

Maven定义了这样一组规则:世界上任何一个构建都可以使用Maven坐标唯一标识,Maven坐标的元素包括groupId、artifactId、version、packaging(可选)、classifier(不能直接定义)。只要我们提供正确的坐标元素,Maven就能找到对应的构件。

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8"?>
<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">
<!--指定了当前POM模型的版本,对于Maven2及Maven3来说,它只能是4.0.0-->
<modelVersion>4.0.0</modelVersion>
<groupId>com.start.mvnbook</groupId>
<artifactId>hello-world</artifactId>
<version>1.0-SNAPSHOT</version>
<!--定义Maven项目的打包方式,默认值为jar-->
<packaging>jar</packaging>
<name>Maven Hello World Project</name>
</project>

groupId、artifactId、version,这三个元素定义了一个项目基本的坐标,在maven的世界,任何的jar、pom或者war都是以这些基本的坐标进行区分的。
classifier:该元素用来帮助定义构建输出的一些附属构件。例如主构件是nexus-indexer-2.0.0.jar,其附属构件可为nexus-indexer-2.0.0-javadoc.jar、nexus-indexer-2.0.0-sources.jar。注意,不能直接定义项目的classifier,因为附属构件不是项目直接默认生产的,而是由附加的插件帮助生成。

Maven依赖