maven pom文件结构简析
要使用maven,入门的最好办法就是在myeclipse中直接新建一个maven项目,同时勾选create a simple project选项,这样能快速创建一个简单的默认类型的符合maven默认结构的maven项目。然后就需要为项目配置各种依赖了,使用maven pom editor打开pom.xml文件,在下方切换到Dependency视图,就可以图形化的添加依赖了。
不过图形化视图只是辅助手段,多多少少的还需要手工编辑pom.xml文件,这时候如果熟悉pom.xml文件结构的话,就会方便的多。
pom文件是以标签的形式展现的,根节点是一个project标签。其他标签都是写在其内部的。通常会使用到如下几种标签:
<modelVersion> 指定了当前模型的版本,和maven有关。使用默认值即可。
<groupId>
<artifactId>
<version>
这三个要一起说,因为这三个通常一起规定了某一个构建(一个jar、war包等就是一个构建)。groupid通常是公司域名的倒写(也可以认为是同一组的jar);artifactid是构建本身的名字,名字中最好不要带—. 等字符(因为这些字符在maven构建命名规范中属于关键字);version规定了当前构建的版本,版本号通常以.隔开(废话)。
<packaging> 指定了当前构建的类型,常用的有jar,war,pom等。
<build> 指定如何构建当前的构建。里边通常包含的标签有:
<resources>:指定了当前构建的source目录
<plugins> :指定了进行构建时使用的插件。
build标签的具体使用会在以后的章节中描述。
<dependencies>:指定当前构建都需要哪些依赖,<dependencies>会包含若干个<dependency>子标签
<dependency>:此标签是被包含在<dependencies>标签中的,每一个dependency标签都对应一个依赖。
<properties> :其中包含了若干个自定义属性,通常的做法中,会将各个依赖的版本放置到此标签中。
一个pom文件用的最多的几个标签就是上述几个,应该比较容易理解。文章结尾在贴出一个简单的pom.xml文件:
- <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">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.test</groupId>
- <artifactId>TestMavenPom</artifactId>
- <version>1.0.0</version>
- <properties>
- <commons-lang3>3.3.2</commons-lang3>
- </properties>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
- <dependencies>
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-lang3</artifactId>
- <version>${commons-lang3}</version>
- </dependency>
- </dependencies>
- </project>
maven pom文件结构简析的更多相关文章
- maven pom文件结构详解
POM文件结构 Project Object Model是Maven2项目的基础所在,简单来说它就是一个XML文件,Maven2用它来描述一个工程的整个生命周期所需要执行的一系列功能和特性. 最小配置 ...
- Maven pom.xml文件详解
Maven pom.xml文件详解 一.简介 POM全称是Project Object Model,即项目对象模型. pom.xml是maven的项目描述文件,它类似与antx的project.xml ...
- [Spring] 学习Spring Boot之一:基本使用及简析
一.简介 使用 Spring Boot 目的主要是用来简化 Spring 应用的搭建及开发过程,因为使用 Spring 及 SpringMVC 框架时需要手动配置的地方非常多(各种包之间的依赖.各种配 ...
- Linux目录结构简析
Linux目录结构简析 Linux继承了unix操作系统结构清晰的特点.在linux下的文件结构非常有条理.但是,上述的优点只有在对linux相当熟悉时,才能体会到.现在,虫虫就把linux下的目录结 ...
- 简析.NET Core 以及与 .NET Framework的关系
简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. W ...
- 简析 .NET Core 构成体系
简析 .NET Core 构成体系 Roslyn 编译器 RyuJIT 编译器 CoreCLR & CoreRT CoreFX(.NET Core Libraries) .NET Core 代 ...
- RecycleView + CardView 控件简析
今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...
- 史上最全的maven pom.xml文件教程详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- Java Android 注解(Annotation) 及几个常用开源项目注解原理简析
不少开源库(ButterKnife.Retrofit.ActiveAndroid等等)都用到了注解的方式来简化代码提高开发效率. 本文简单介绍下 Annotation 示例.概念及作用.分类.自定义. ...
随机推荐
- Java 线程与锁
Synchronization synchronized语法可以获取锁, 当其他线程持有锁的时候该线程想要获取锁将会进入等待状态, 直到没有其他线程持有该锁 显示使用 synchronized (lo ...
- SQLServer中merge函数用法详解
http://www.jb51.net/article/75302.htm Merge关键字是一个神奇的DML关键字.它在SQL Server 2008被引入,它能将Insert,Update,Del ...
- scrapy框架系列 (1) 初识scrapy
Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页 ...
- Three.js中如何显示帧速【转】
https://blog.csdn.net/hannahlwh1988/article/details/36876295 Step1:src中添加: <script src="js/s ...
- C#中转义字符[转]
https://www.cnblogs.com/muran/p/3174865.html 编程中很多细节问题我们都要十分的注意,要不一个小小的字母错误就能引起程序的无法运行. C#中转义字符分2中,一 ...
- $.getJSON的缓存问题处理
今天遇到jQuery.getJSON的缓存问题.如果其调用的url之前曾经调用过的话,回调函数就会直接在缓存里面取得想要得值,而不是进入到后台,调用存储过程了.这是一个比较郁闷的问题.不修改的话,用户 ...
- Valid Palindrome leetcode java
题目: Given a string, determine if it is a palindrome, considering only alphanumeric characters and ig ...
- 未能加载文件或程序集“Microsoft.SqlServer.Sqm, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”或它的某一个依赖项。系统找不到指定的文件。 (SqlMgmt)
解决方法: Copy this file "Microsoft.SqlServer.Sqm.dll" in the forder "C:/Program Files/Mi ...
- PHP开发框架比较
PHP开发框架比较 Laravel 是一个简单优雅的 PHP WEB 开发框架,将你从意大利面条式的代码中解放出来.通过简单.优雅.表达式语法开发出很棒的 WEB应用!但是通过使用我们发现Larave ...
- C#.NET常见问题(FAQ)-如何让文本框textbox内容限制为数字
//限制文本框的输入 private void txtQuestionScore_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyCha ...