從零開始,跟我一塊兒作jblog項目(二)Mavenjava
maven是一個項目管理工具,尤爲適用於JAVA世界mysql
在jblog的開發前期,尚未系統使用過maven程序員
只是在有一次合做開發過程當中使用過subclipse以及SVN版本控制,當時瞭解過maven的一些知識spring
在正兒八經學習了《Maven實戰》這本電子書之後,我認爲maven是每個JAVA程序員都須要瞭解並使用的sql
爲何?由於JAVA的世界裏,你不可能全部東西都本身來寫apache
要引入的JAR包實在太多,而這些JAR包的版本也實在太多,已經多到一個失控的地步了json
在這個失控的JAR包世界裏,依賴衝突,重複依賴,依賴臃腫正在不可避免地發生着api
不使用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>