maven是一个项目管理工具,尤其适用于JAVA世界
在jblog的开发前期,还没有系统使用过maven
只是在有一次合作开发过程中使用过subclipse以及SVN版本控制,当时了解过maven的一些知识
在正儿八经学习了《Maven实战》这本电子书以后,我认为maven是每一个JAVA程序员都需要了解并使用的
为什么?因为JAVA的世界里,你不可能所有东西都自己来写
要引入的JAR包实在太多,而这些JAR包的版本也实在太多,已经多到一个失控的地步了
在这个失控的JAR包世界里,依赖冲突,重复依赖,依赖臃肿正在不可避免地发生着
不使用maven,你只能需要JAR包时去它们的官网下载,十有八九你就会下载最新版的,而且十有八九就特么用不起来
maven给全世界的jar包打上了坐标,每个版本都给你打上了坐标
你可以使用几行XML标签,就能够让maven帮你从中央仓库中精确下载好指定版本的jar包
并且关于此JAR包一些列的依赖JAR包,它都帮你弄好,你绝对会感谢它的
这就是使用maven最大的好处,此外maven还会帮你优化代码结构,构建测试框架,实现打包管理等一些非常实用的功能
关于maven的具体使用,推荐下载《maven实战》这本电子书,系统看一下这本书的前六章,不超过100页PDF
相信你可能很快掌握maven的基本配置和用法
jblog项目规划的初期,只集成了Hibernate框架,下面是集成Hibernate的POM.XML文件,随着开发的进展,POM文件也会逐步丰满的
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.newflypig.jblog</groupId> <artifactId>jblog</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>jblog Maven Webapp</name> <url>http://maven.apache.org</url> <repositories> <repository> <id>JBoss repository</id> <url>http://repository.jboss.org/nexus/content/groups/public/</url> </repository> <repository> <id>maven</id> <name>maven repository</name> <url>http://repo2.maven.org/maven2/</url> </repository> </repositories> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.1.4.RELEASE</spring.version> <hibernate.version>4.3.9.Final</hibernate.version> </properties> <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-ehcache</artifactId> <version>${hibernate.version}</version> </dependency> <!-- 二级缓存ehcache --> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.9.0</version> </dependency> <!-- log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- mysql连接 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.37</version> </dependency> <!-- json --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.7</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.7</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.0-b01</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>jblog</finalName> </build> </project>