4、Maven的依赖的范围(应该注意依赖jar的传递性,根据依赖范围scope的不同而不同)

Maven中有三大模块,分别是依赖、仓库、生命周期和插件,我们接下来下来介绍下依赖。

      关于依赖时,一些常量数据的获取

       <dependencies>
		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>user-core</artifactId>
			<version>${project.version}</version>
			<exclusions>
				<exclusion>
					<groupId>junit</groupId>
					<artifactId>junit</artifactId>
				</exclusion>
			</exclusions>
			<scope>test</scope>
		</dependency>
	</dependencies>


      Maven常见的依赖范围主要如下图所示:

      1、对于主代码classpath有效

           表示可以在,src/main/java下的代码中,调用jar文件提供的类和方法。

      2、对于测试代码classpath有效

           表示可以在,src/main/test下的代码中,调用jar文件提供的类和方法。

     3、被打包,对于运行时classpath有效

           表示,在其他的Maven项目里面,引入当前项目时。会将当前项目依赖的jar文件,一起加到当前项目

    

      通过一个小的项目来使用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对应的依赖坐标。

    
    继续在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>

6、因为要进行数据库的连接,所以这里还要加入对mysql数据库的依赖:

    继续在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>

7、编写vo类User:

 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 }

9、 然后在编写测试类:

 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("admin@admin.com");
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就可以进行程序的打包操作了:

     

    

     

     

   




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值