maven pom文件结构简析

先说明一点,本系列文章可能只提到了maven 20% 的知识,但是基本上这20%的知识就能覆盖真实使用环境中80%的操作了。如需更深一步的学习maven,还是直接去官网看文档的好。


Java语言中,框架通常是海量的,如果盲目的去学习某个框架,最终的结果就是两败俱伤,学习的人白白浪费了时间和精力,而新的框架又在不断产生,可能今天学习的框架,明天又出了一个更好的。但是有些软件却是非常值得“深究”的,因为他/她总会在某个特定的时刻,让人爱的无法自拔。。。。


要学习maven,首先要爱上它,我爱上它的原因是实在无法忍受种种框架依赖的种种jar包。在使用maven以前,例如搭建一个非常熟悉的SSH框架,就首先要去StrutsSpringHibernate下载各个sdk,然后参照各自的help文档,来“集合”需要的jar,其中有许多jar只会在特定的条件下才会用到,通常情况下都用不到。而且,有些jar属于第三方的jar,这意味着必须得自己找那些jar,例如commons-xxxx系列。所有jar集齐后,在排除冲突,最后将搭好的框架放在eclipse里测试运行,再看看有哪些问题。这样“千辛万苦”搭好的环境,可能随着其中一个组件版本的变化,例如spring版本的升级,又需要重新在来一次。而且最后搭好的框架光jar可能就几百M。每次向svn上传时,就会特别悲伤。。。。


要使用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>

这三个要一起说,因为这三个通常一起规定了某一个构建(一个jarwar包等就是一个构建)。groupid通常是公司域名的倒写(也可以认为是同一组的jar);artifactid是构建本身的名字,名字中最好不要带. 等字符(因为这些字符在maven构建命名规范中属于关键字);version规定了当前构建的版本,版本号通常以.隔开(废话)。

<packaging>              指定了当前构建的类型,常用的有jarwarpom等。

<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>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值