资源
项目地址: https://maven.apache.org/plugins/index.html
库
1. 解决的问题
java项目依赖管理
自动化项目构建
2. 典型使用
配置
<!--pom.xml-->
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<name>my-app</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
... lots of helpful plugins
</pluginManagement>
</build>
阶段
如果进行了deploy或者install,如何撤回?
3.概念与细节
snapshot
The SNAPSHOT value refers to the ‘latest’ code along a development branch, and provides no guarantee the code is stable or unchanging. Conversely, the code in a ‘release’ version (any version value without the suffix SNAPSHOT) is unchanging.
In other words, a SNAPSHOT version is the ‘development’ version before the final ‘release’ version. The SNAPSHOT is “older” than its release.
parent
父级引用
最终两个app项目中都要引用parent.pom信息,可以方便的在parent中做统一的配置,提高复用性和修改的灵活性。
例如 spring-boot-starter-parent.pom
-
定义了java编译版本为1.8;
-
使用UTF-8格式编码;
-
继承自spring-boot-dependencies,这个里边定义了依赖的版本,也正是因为继承了这个依赖,所以我们在写依赖时才不需要写版本号;
-
执行打包操作的配置;
-
自动化的资源过滤;
-
自动化的插件配置;
-
针对 application.properties 和 application.yml 的资源过滤,包括通过 profile 定义的不同环境的配置文件,例如 application-dev.properties 和 application-dev.yml。
maven库
usages 被其他项目引用次数。
scope