maven的pom详解
maven将项目抽象成一个模型,pom.xml为项目模型对象的描述文件。
此文件中的一些设置项如下:
一、maven模型版本,4.0.0基本稳定
<modelVersion>4.0.0</modelVersion>
二、项目信息,也称作坐标
<groupId>项目所属组织</groupId>
<artifactId>项目或模块名称</artifactId>
<version>项目版本</version>
0.0.1.SNAPSHOT 表示最新版本的快照,表示将频繁更新,不稳定。
三、项目的构建信息,maven插件
<build><plugins><!-- 指定编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><!-- 设置编译插件信息 --><configuration><!-- 编译时的jdk版本--><source>1.8</source><!-- 运行时的jdk版本--><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build>
五、依赖
通常我们的项目需要引入第三方库,我们只需要添加第三方库的坐标即可。dependencies可以包含多个dependency。
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency>
</dependencies>
scope元素是表示该插件或依赖的作用范围,有如下取值:
- compile 默认值,在工程的生命周期的各个阶段都有效
- test 仅在测试阶段有效
- provided 表示在生产环境中会提供,不需要打包此插件或依赖。
四、全局变量
1、maven内置的全局变量
例如指定编译版本和编码,在properties标记中添加变量,标记中间的变量值。
内置全局变量的名称固定,由maven工具默认调用。
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.build.outputEncoding>UTF-8</project.build.outputEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target>
</properties>
2、自定义全局变量
例如自定义全局变量的名称是junit.version,表示junit版本号,在properties标记中添加
<properties><junit.version>4.11</junit.version>
</properties>
使用自定义全局变量:${变量名}
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope>
</dependency>
六、父工程
作用:解决各模块的版本冲突,统一管理版本。子工程可以继承父工程的依赖版本。
1、创建一个maven父工程,打包方式为pom
在父工程中统一配置插件管理
<dependencyManagement><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies>
</dependencyManagement>
2、在子工程声明引用的父工程
<parent><groupId>父工程组织名</groupId><artifactId>父工程名</artifactId><version>父工程版本</version><relativePath>父工程pom.xml的相对路径</relativePath>
</parent>
子工程的与父工程相同的依赖可以不用再声明版本
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency></dependencies>
3、先安装父工程,再安装子工程
七、(聚合)多模块
作用:一键安装各个模块工程
在总工程里面加入各个模块。
<modules><module>../工程1</module><module>../工程2</module></modules>
maven的pom详解相关推荐
- 发布个人项目jar包到maven中央仓库详解
发布个人项目jar包到maven中央仓库详解 1.在sonatype提交发布工单(Issue) sonatype是由社区支持的开源项目托管服务(Open Source Project Reposito ...
- Eclipse中Maven常用命令以及Maven生命周期详解
Eclipse中maven常用的命令 在某一个maven项目右键快捷方式,然后点击Run As就可以发现几个Maven的命令: Maven Build: 这个命令用于编译Maven工程,执行命令后会在 ...
- IntelliJ IDEA for Mac中的Maven操作窗口详解
文章目录 简介 操作按钮详解 Reload All Maven Projects Generate Sources and Update Folders For All Projects Downlo ...
- 使用nexus搭建maven私服教程详解
私服是什么 私服,私有服务器,是公司内部Maven项目经常需要的东东,不总结一下,不足以体现出重视.Nexus是常用的私用Maven服务器,一般是公司内部使用.下载地址是http://www.sona ...
- maven常用插件详解
1. 简介 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说, ...
- Maven——常用命令详解
常用命令 mvn –version mvn -v 显示maven安装版本信息 mvn clean 清理项目打包文件,即项目下的target目录 mvn compile 编译项目下的src/main/J ...
- IntelliJ IDEA for Mac中Maven菜单用法详解
Reload project 你如果修改了 pom.xml 文件,可以点击这个按钮重载 Maven 项目,重载过程会引入新的依赖,会删除不需要的依赖. Generate Sources and Upd ...
- Maven的scope详解
文章目录 依赖范围介绍 compile test provided runtime system import 依赖传递 依赖范围与 classpath 的关系表 参考 依赖范围介绍 maven 项目 ...
- maven的profile详解
详细内容请见:https://www.cnblogs.com/wxgblogs/p/6696229.html Profile能让你为一个特殊的环境自定义一个特殊的构建:profile使得不同环境间构建 ...
- maven打包配置详解
用了几个月的maven了 , 其实主要的话就两方面 (1)用maven管理一些jar包,(2)构建打包项目 maven有三种生命周期, clean,default,site clean 就是清除项目 ...
最新文章
- PyTorch开源物体检测工具包
- 面试官:说说Java中java.lang.Void和void有什么作用和区别?
- 从浏览器地址栏输入url到显示页面的步骤
- Replace Parameter with Methods(以函数取代参数)
- SQLServer2000同步复制技术实现步骤作者
- 方法 注释_在IDEA中配置类和方法的文档注释
- 数据库表存放在哪里_一文了解数据库和数据仓库
- Java设计模式之迭代子模式
- Windows Phone 7 优秀开源项目概览 来源:http://www.cnblogs.com/porscheyin/archive/2010/12/15/1906476.html...
- jQuery - 通过文本描述设置选择控件的选定值
- 数组作业:例题5.1.一个10个元素一维数组的赋值与遍历
- 安装了最新版本的java 用友nc打不开_NC无法安装客户端插件,不能进入用友NC系统登陆界面...
- java生成有序的序号,java生成序号
- 基于阿里云CentOS进行Docker尝试
- 泰坦尼克号生存情况预测
- simulink他励直流电动机串电阻启动仿真
- 电信iptv信号接入服务器,IPTV发展需国家明确电信与广电交叉进入政策
- Unity-网络开发(二)
- UI设计师怎样提升品牌能力?
- 【无标题】我的《计算机网络》学习笔记:第一篇、计算机网络概述