Maven中有三大模块,分别是依赖、仓库、生命周期和插件,我们接下来下来介绍下依赖。
Maven常见的依赖范围主要如下图所示:
通过一个小的项目来使用Maven
1、首先建立一个maven项目,这里我建立一个user的项目
2、接下来我们在这个项目中要使用到hibernate框架,此时就要在此项目中加入hibernate的支持,而之前我们讲到maven会自动的为我们加入jar包,但是前提是我们要找到怎么样编写hibernate的引用,如何编写呢?接下来我们就要牵涉到依赖的查询,在maven中所有的依赖都是通过坐标来保存的(GAV-->groupId,artifactId,version),在网上有一些仓库为我们提供了一下项目的坐标,比如:http://mvnrepository.com/,http://www.sonatype.org/nexus/等等,这里我们就使用mvnrepository仓库了,在里面搜索hibernate就能找到对应的hibernate包,如下:
3、 如图,只需要将其中的dependency拷贝到当前项目的pom.xml中即可,如下:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.5.Final</version> </dependency> </dependencies>
4、 保存后,maven就会首先检查本地仓库中是否有hibernate的支持包,如果没有的话则会到网上进行下载,这个过程可能会稍微有点慢!
这里附上hibernate的配置文件和数据库的创建脚本:
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- JDBC-MySQL连接URL --> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate_db</property> <!-- JDBC-MySQL连接数据库的用户名 --> <property name="connection.username">root</property> <!-- JDBC-MySQL连接数据库的密码 --> <property name="connection.password">123456</property> <!-- JDBC-MySQL连接数据库的驱动名称 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 数据库方言 --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 自动建表配置 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 显示Hibernate的调试SQL语句 --> <property name="hibernate.show_sql">true</property> <!-- 加载项目中的映射配置文件 --> <mapping resource="com/toceansoft/pojo/Student.hbm.xml"/> </session-factory> </hibernate-configuration>数据库user的创建脚本:
5、完成后我们在src下再建立一个文件夹,src/main/resources用来保存hibernate的资源文件和log4j的日志文件,这样的话,我们还要加入log4j的jar包,我们继续到仓库里面搜索log4j对应的依赖坐标。
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.5.Final</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies>
继续在pom.xml中加入对mysql的依赖支持:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.2.5.Final</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.26</version> </dependency> </dependencies>
1 2 3 import javax.persistence.Entity; 4 import javax.persistence.GeneratedValue; 5 import javax.persistence.Id; 6 import javax.persistence.Table; 7 8 9 @Entity 10 @Table(name = "t_user") 11 public class User { 12 13 private Integer id; 14 private String username; 15 private String password; 16 private String email; 17 18 @Id 19 @GeneratedValue 20 public Integer getId() { 21 return id; 22 } 23 public void setId(Integer id) { 24 this.id = id; 25 } 26 public String getUsername() { 27 return username; 28 } 29 public void setUsername(String username) { 30 this.username = username; 31 } 32 public String getPassword() { 33 return password; 34 } 35 public void setPassword(String password) { 36 this.password = password; 37 } 38 public String getEmail() { 39 return email; 40 } 41 public void setEmail(String email) { 42 this.email = email; 43 } 44 45 46 }8、 编写测试类,在编写测试类之前我们要首先编写Hibernate的一个工具类,用来获得Session对象:
1 2 3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 import org.hibernate.cfg.Configuration; 6 7 public class HibernateUntil { 8 9 private static SessionFactory factory = null; 10 11 static{ 12 13 factory = new Configuration().configure().buildSessionFactory(); 14 } 15 16 public static Session openSession(){ 17 return factory.openSession(); 18 } 19 }
1 2 3 import org.hibernate.Session; 4 import org.junit.Assert; 5 import org.junit.Test; 6 7 import com.lq.wangzhen.user.vo.HibernateUntil; 8 import com.lq.wangzhen.user.vo.User; 9 10 public class TestUser { 11 12 @Test 13 public void testAdd(){ 14 Session session = HibernateUntil.openSession(); 15 session.beginTransaction(); 16 17 User u = new User(); 18 u.setUsername("zhangsan"); 19 u.setPassword("123456"); 20 u.setEmail("[email protected]"); 21 session.save(u); 22 Assert.assertTrue(u.getId()>0); 23 session.getTransaction().commit(); 24 } 25 }10、 通过myeclipse在pom.xml右键点击,运行Maven test,如图:
此时我们查看数据库,就可以看到数据库中多了一条数据:
11、然后运行maven package就可以进行程序的打包操作了: