pom.xml文件设置
一个相对完整的maven配置文件
<?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版本-->
<modelVersion>4.0.</modelVersion> <!--项目坐标-->
<groupId>cn.itcast.account.mvnbook</groupId>
<artifactId>account</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging> <!--聚合模块-->
<modules>
<module>accounte-mail</module>
<module>account-api</module>
</modules> <!--参数管理-->
<properties>
<spring.version>5.1..RELEASE</spring.version>
<mybatis.version>3.5.</mybatis.version>
<mybatis-spring.version>2.0.</mybatis-spring.version>
<mail.version>1.4.</mail.version>
<greenmail.version>1.5.</greenmail.version>
<junit.version>4.12</junit.version>
<maven-compile-plugin.version>3.8.</maven-compile-plugin.version>
<jdk.version>1.8</jdk.version>
</properties> <!--仓库管理,即去哪个远程仓库下载依赖-->
<repositories>
<!--正式版本-->
<repository>
<id>releases</id>
<url>http://</url>
</repository>
<!--快照版本-->
<repository>
<id>snapshots</id>
<url>http://</url>
</repository>
</repositories> <!--部署管理,即将项目作为构件部署到哪个远程仓库-->
<distributionManagement>
<!--正式版本-->
<repository>
<id>releases</id>
<url>http://</url>
</repository>
<!--快照版本-->
<snapshotRepository>
<id>snapshots</id>
<url>http://</url>
</snapshotRepository>
</distributionManagement> <!--依赖管理,子模块可以选择性继承-->
<dependencyManagement>
<dependencies>
<!--spring starts-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<!--spring ends-->
<!--mybatis starts-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring.version}</version>
</dependency>
<!--mybatis ends-->
<!--mail starts-->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>${mail.version}</version>
</dependency>
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail</artifactId>
<version>${greenmail.version}</version>
<scope>test</scope>
</dependency>
<!--mail ends-->
<!--test starts-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!--test ends-->
</dependencies>
</dependencyManagement> <!--项目构建管理-->
<build>
<!--插件管理,子模块可以选择性继承-->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compile-plugin.version}</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build> </project>
其中,repositories标签的作用是设置远程仓库。Maven项目需要构件(例如jar包)时,会首先去本地仓库中查找。如果本地仓库中不存在,会去远程仓库下载。如果这里不配置repositories,由于所有的pom文件都继承自超级POM,会默认去中央仓库中下载,效率比较低。为了提高效率,在repositories标签中设置私服,当本地仓库中不存在某个构件时,Maven会首先从私服中获取。如果私服中依然不存在,再从外部的远程仓库(例如中央仓库)下载,缓存在私服,供以后局域网用户使用。注意,如果私服设置了权限验证,需要在Maven的setting.xml文件中设置权限校验的参数。
<servers>
<!--id必须与pom文件中的repositories标签中设置的一致-->
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
modules标签的作用是声明要聚合的模块,在该目录了下执行mvn命令,会一次性执行这里声明的所有被聚合的模块。需要注意的是其子标签module的值应该是目录名称,但通常与被聚合的模块的artifactId一致。
distributionManagement标签的作用是设置项目部署位置,即maven clean deploy命令将项目以构件(例如jar、war、pom等)的形式部署到哪个私服。如果不设置,maven clean deploy命令将无法使用,即无法将项目推送到远程仓库。
dependencyManagement标签的作用是声明项目用到的所有依赖,统一管理依赖的版本等。子模块可以选择性继承这里声明的依赖,只需要设置groupId和artifactId即可,version和scope属性会继承父模块声明的。
pluginManagement标签跟dependencyManagement类似,子模块也可以选择性继承这里声明的插件。
pom.xml文件设置的更多相关文章
- 如何在maven pom.xml文件中设置Java编译器版本
今天遇到一个问题: 在Eclipse中用maven创建一个新的web项目,然后再用maven update一下,则JDK版本自动变为1.5. 通过查找资料,终于发现maven编译器插件(Maven C ...
- 史上最全的maven的pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- Maven项目pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- 史上最全的maven pom.xml文件教程详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- [maven] pom.xml 文件详解
参考资料: http://blog.csdn.net/uohzoaix/article/details/7035307 http://www.cnblogs.com/qq78292959/p/3711 ...
- Maven中pom.xml文件的配置
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- Maven pom.xml文件详解
Maven pom.xml文件详解 一.简介 POM全称是Project Object Model,即项目对象模型. pom.xml是maven的项目描述文件,它类似与antx的project.xml ...
- maven的pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- maven的pom.xml文件的标签详解
该博文引至:https://www.cnblogs.com/hafiz/p/5360195.html <project xmlns="http://maven.apache.org/P ...
随机推荐
- Animator通过按键切换动画不及时,动画延时切换问题
再unity3D版本为Unity 5.2.1f1 (64-bit),再设置动画切换时有一个Has Exit Time属性,由于勾上了这个的原因
- C语言中整形数组、字符数组、字符串的区别
一. 第一 整型数组的存放,数组最后是不加'\0'的,字符串会自动加上,因此存放字符的时候数组的大小要比实际字符的多一个 第二 整型数组 每一个单元是4个字节的,字符串是一个一个字符存放的,每个字符占 ...
- vue图片不存在时加载默认图片
在文件中的img那里添加:οnerrοr="errorImg01",然后设置errorImg01的路径如果直接写成 errorImg01: ('../../assets/image ...
- js函数调用的几种方法
js的函数调用会免费奉送两个而外的参数就是 this 和 arguments .arguments是参数组,他并不是一个真实的数组,但是可以使用.length方法获得长度. 书上有说4中调用方式: 方 ...
- Ubuntu 增加新用户并赋予root权限及免密的方法
添加用户 添加一个名为hylink的用户 adduser hylink 修改密码 passwd hylink Changing password for user hylink. New UNIX p ...
- 关于<input type="hidden"/>标签的记录
<input type="hidden" name="pid" value="10"/>标签放在一个input标签后可以使用,但 ...
- Linux架构之Nginx 常见问题
第54章 Nginx常见问题 一.Nginx多Sever优先级 在开始处理一个http请求时,nginx会取出header头中的Host变量,与nginx.conf中每个server的server_n ...
- MySQL 赋予用户权限(grant %-远程和localhost-本地区别)
不过有些时候(有些版本)'%'不包括localhost,要单独对@'localhost'进行赋值,这事真让我遇上了,在对mysql5.1.32建立远程用户时. 分别对'%'和'localhost'授权 ...
- bzoj3510 首都 LCT 维护子树信息+树的重心
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3510 题解 首先每一个连通块的首都根据定义,显然就是直径. 然后考虑直径的几个性质: 定义:删 ...
- react 详细解析学习笔记
React的介绍: React来自于Facebook公司的开源项目 React 可以开发单页面应用 spa(单页面应用) react 组件化模块化 开发模式 React通过对DOM的模拟 ...