POM描述
POM使用xml文件描述,文件名pom.xml,其内容包括以下几个方面(按个人理解的划分,非标准官方说法)
POM版本号(POM模型的版本,不同于POM描述的具体内容。类似于 类和对象的关系),
项目ID(项目的唯一标志),
父POM信息(每一个POM都有一个父POM,即便没有显式声明),
依赖信息(所依赖的项目的标志信息),
依赖仓库(查找依赖的仓库地址),
插件信息(构建用到的插件),
插件仓库(查找插件的仓库地址),
构建信息(源代码和资源的路径、目标文件名称和路径),
POM配置信息(变量)。
各部分所使用的标签如下:
* POM版本号:
<modelVersion>4.0.0</modelVersion>
* 项目ID:
<groupId>cn.kyh</groupId>
<artifactId>helloplugin</artifactId>
<version>1.0-SNAPSHOT</version>
* 父POM信息:
```
<parent>
<artifactId />
<groupId />
<version />
<!-- 父项目的pom.xml文件的相对路径,默认值是../pom.xml。Maven首先在relativePath,然后在本地仓库,最后在远程仓库寻找父项目的pom。 -->
<relativePath />
</parent>
```
* 依赖信息
```
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
```
* 依赖仓库
```
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>
```
* 插件信息
```
<build>
<plugins>
<plugin>
<groupId>cn.kyh</groupId>
<artifactId>helloplugin</artifactId>
<version>1.0-SNAPSHOT</version>
</plugin>
</plugins>
</build>
```
* 插件仓库
```
<pluginRepositories>
<pluginRepository>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Plugin Repository</name>
<url>http://repo1.maven.org/maven2</url>
</pluginRepository>
</pluginRepositories>
```
* 构建结果信息
```
<build>
<sourceDirectory>C:\MVN\project\src\main\java</sourceDirectory>
<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>C:\MVN\project\src\test\java</testSourceDirectory>
<outputDirectory>C:\MVN\project\target\classes</outputDirectory>
<testOutputDirectory>C:\MVN\project\target\test-classes</testOutputDirectory>
<resources>
<resource>
<mergeId>resource-0</mergeId>
<directory>C:\MVN\project\src\main\resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<mergeId>resource-1</mergeId>
<directory>C:\MVN\project\src\test\resources</directory>
</testResource>
</testResources>
<directory>C:\MVN\project\target</directory>
<finalName>project-1.0</finalName>
</build>
```
* POM配置信息
<profiles>
<profile>
<id>test</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>Using env.test.properties</echo>
<copy file="src/main/resources/env.test.properties" tofile="${project.build.outputDirectory}/env.properties" overwrite="true"/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
View Code
常用Maven命令:
mvn clean 清理生成的文件
mvn compile 编译源代码
mvn package 打包
mvn install 把项目安装到本地仓库