【Maven实战】依赖的范围
2013-09-15 23:21
197 查看
在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包,如下:
![](http://images.cnitblog.com/blog/472286/201309/14164041-3dbee685a36d48dd802e2c18d67d0fa3.png)
如图,只需要将其中的dependency拷贝到当前项目的pom.xml中即可,如下:
保存后,maven就会首先检查本地仓库中是否有hibernate的支持包,如果没有的话则会到网上进行下载,这个过程可能会稍微有点慢!
这里附上hibernate的配置文件和数据库的创建脚本:
数据库user的创建脚本:
![](http://images.cnitblog.com/blog/472286/201309/14170927-21717996fb674eb4a49e320da09fd1a0.png)
3、完成后我们在src下再建立一个文件夹,src/main/resources用来保存hibernate的资源文件和log4j的日志文件,这样的话,我们还要加入log4j的jar包,我们继续到仓库里面搜索log4j对应的依赖坐标。
![](http://images.cnitblog.com/blog/472286/201309/14165552-848b9b2a6e224307884176ff66ac185f.png)
继续在pom.xml中加入对log4j的支持:
4、因为要进行数据库的连接,所以这里还要加入对mysql数据库的依赖:
![](http://images.cnitblog.com/blog/472286/201309/14171202-1d7c0253fd1e4d1b9d0bdd688ee430de.png)
继续在pom.xml中加入对mysql的依赖支持:
5、编写vo类User:
对应的表t_user的创建脚本:
![](http://images.cnitblog.com/blog/472286/201309/14191452-d51b2d3b35de45679539c646f61e60b5.png)
6、编写测试类,在编写测试类之前我们要首先编写Hibernate的一个工具类,用来获得Session对象:
然后在编写测试类:
通过myeclipse在pom.xml右键点击,运行Maven test,如图:
![](http://images.cnitblog.com/blog/472286/201309/14191918-db79baffc22245b4811b12fa4f30d422.png)
此时我们查看数据库,就可以看到数据库中多了一条数据:
![](http://images.cnitblog.com/blog/472286/201309/14192207-edd6d498d52a4068a95d838a0b44e43a.png)
然后运行maven install就可以进行程序的打包操作了:
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包,如下:
![](http://images.cnitblog.com/blog/472286/201309/14164041-3dbee685a36d48dd802e2c18d67d0fa3.png)
如图,只需要将其中的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>
保存后,maven就会首先检查本地仓库中是否有hibernate的支持包,如果没有的话则会到网上进行下载,这个过程可能会稍微有点慢!
这里附上hibernate的配置文件和数据库的创建脚本:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="connection.url"> jdbc:mysql://localhost:3306/user </property> <property name="connection.username">root</property> <property name="connection.password">wangzhen</property> <property name="connection.driver_class"> org.gjt.mm.mysql.Driver </property> <property name="myeclipse.connection.profile">mysql</property> <property name="show_sql">true</property> <property name="format_sql">true</property> <mapping class="com.lq.wangzhen.user.vo.User"/> </session-factory> </hibernate-configuration>
数据库user的创建脚本:
![](http://images.cnitblog.com/blog/472286/201309/14170927-21717996fb674eb4a49e320da09fd1a0.png)
3、完成后我们在src下再建立一个文件夹,src/main/resources用来保存hibernate的资源文件和log4j的日志文件,这样的话,我们还要加入log4j的jar包,我们继续到仓库里面搜索log4j对应的依赖坐标。
![](http://images.cnitblog.com/blog/472286/201309/14165552-848b9b2a6e224307884176ff66ac185f.png)
继续在pom.xml中加入对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>
4、因为要进行数据库的连接,所以这里还要加入对mysql数据库的依赖:
![](http://images.cnitblog.com/blog/472286/201309/14171202-1d7c0253fd1e4d1b9d0bdd688ee430de.png)
继续在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>
5、编写vo类User:
package com.lq.wangzhen.user.vo; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = "t_user") public class User { private Integer id; private String username; private String password; private String email; @Id @GeneratedValue public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
对应的表t_user的创建脚本:
create table t_user ( id int primary key auto_increment, username varchar(100), password varchar(32), email varchar(100) );
![](http://images.cnitblog.com/blog/472286/201309/14191452-d51b2d3b35de45679539c646f61e60b5.png)
6、编写测试类,在编写测试类之前我们要首先编写Hibernate的一个工具类,用来获得Session对象:
package com.lq.wangzhen.user.vo; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUntil { private static SessionFactory factory = null; static{ factory = new Configuration().configure().buildSessionFactory(); } public static Session openSession(){ return factory.openSession(); } }
然后在编写测试类:
package com.lq.wangzhen.test; import org.hibernate.Session; import org.junit.Assert; import org.junit.Test; import com.lq.wangzhen.user.vo.HibernateUntil; import com.lq.wangzhen.user.vo.User; public class TestUser { @Test public void testAdd(){ Session session = HibernateUntil.openSession(); session.beginTransaction(); User u = new User(); u.setUsername("zhangsan"); u.setPassword("123456"); u.setEmail("admin@admin.com"); session.save(u); Assert.assertTrue(u.getId()>0); session.getTransaction().commit(); } }
通过myeclipse在pom.xml右键点击,运行Maven test,如图:
![](http://images.cnitblog.com/blog/472286/201309/14191918-db79baffc22245b4811b12fa4f30d422.png)
此时我们查看数据库,就可以看到数据库中多了一条数据:
![](http://images.cnitblog.com/blog/472286/201309/14192207-edd6d498d52a4068a95d838a0b44e43a.png)
然后运行maven install就可以进行程序的打包操作了:
![](http://images.cnitblog.com/blog/472286/201309/14193734-9232664f061d432bbdf9a51e709128dd.png)
相关文章推荐
- 【maven实战】06-依赖与范围
- maven3实战之坐标和依赖(依赖范围)
- 【maven实战】04-依赖范围
- maven实战第四篇_04_yucong_依赖范围scope的介绍:test,complile
- maven中的依赖范围
- Maven的依赖范围
- maven3实战之坐标和依赖(何为maven坐标)
- maven依赖范围的解释
- Maven依赖传递暨依赖范围
- maven的依赖范围
- maven 中的依赖范围与classpath的关系
- maven依赖范围
- Maven开发笔记(一)—— Maven中的依赖作用范围(scope)
- maven3实战之坐标和依赖(坐标详解)
- maven依赖范围
- maven的依赖范围scope
- 【maven】依赖范围
- 记录下maven依赖范围和classpath的关系
- maven的依赖范围
- maven依赖范围