【Maven由浅入深】5.在Eclipse中建立简单的项目2

我们上次写了一个user-core模块,管理用户信息的,这次我们写另外一个模块(日志模块),为以后的Maven耦合做准备。

我们创建日志模块的工程,依然创建Maven项目(user-log):

我们要使用common logging来写日志信息,所以我们在pom中添加这个依赖:

<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.1.1</version>
</dependency>

我们还需要特殊版本的log4j:

<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.9</version>
</dependency>

然后我们将第一个项目user-core和第二个项目user-log都打成jar包,并且上传至本地仓库:
鼠标放在项目的pom.xml上,点击鼠标右键:

我们前两个都打好包了,我们开创建第三个模块user-service:

然后我们将之前的两个模块都加进去:

<dependency>
	<groupId>${project.groupId}</groupId>
	<artifactId>user-log</artifactId>
	<version>${project.version}</version>
</dependency>

<dependency>
	<groupId>${project.groupId}</groupId>
	<artifactId>user-core</artifactId>
	<version>${project.version}</version>
</dependency>

我们会发现,所有和user-core和user-log有关的依赖jar包全部都加进工程来了:

这就是传说中的“依赖传递”。

接下来在该模块中创建Service类:
IUserService:

package cn.edu.hpu.maven.user_service;

import cn.edu.hpu.user.model.User;

public interface IUserService {
	public void add(User user);

	public User loadByUsername(String username);
}

UserService:

package cn.edu.hpu.maven.user_service;

import cn.edu.hpu.user.dao.IUserDao;
import cn.edu.hpu.user.model.User;

public class UserService implements IUserService{

	private IUserDao userDao;

	public UserService(IUserDao userDao) {
		super();
		this.userDao = userDao;
	}

	public void add(User user) {
		userDao.add(user);
	}

	public User loadByUsername(String username) {
		return userDao.loadUsername(username);
	}

}

接下来我们做测试:
因为我们要使用easymock来测试两个模块之间的调用关系是否正常,所以我们在pom.xml添加此依赖:

<dependency>
	<groupId>org.easymock</groupId>
	<artifactId>easymock</artifactId>
	<version>3.4</version>
</dependency>

然后我们编写测试类:
TestUserService:

package cn.edu.hpu.maven.user_service;

import static org.easymock.EasyMock.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import cn.edu.hpu.user.dao.IUserDao;
import cn.edu.hpu.user.model.User;
import cn.edu.hpu.user.util.EntitiesHelper;

public class TestUserService {
	private IUserDao userDao;
	private IUserService userService;
	private User baseUser;

	@Before
	public void setUp(){
		userDao= createStrictMock(IUserDao.class);
		userService=new UserService(userDao);
		baseUser=new User("admin","123","dmin");
	}

	@Test
	public void testAdd(){
		userDao.add(baseUser);
		expectLastCall();
		replay(userDao);
		userService.add(baseUser);
	}

	@Test
	public void testLoadByUsername(){
		expect(userDao.loadUsername("admin")).andReturn(baseUser);
		replay(userDao);
		User tu=userService.loadByUsername("admin");
		EntitiesHelper.assertUser(tu, baseUser);
	}

	@After
	public void tearDown(){
		verify(userDao);
	}
}

然后我们测试并打包:

测试结果成功:

下一次我们做Web模块,将我们的核心模块user-core、日志模块user-log以及业务模块user-service合并到我们的Web层中去。

转载请注明出处:http://blog.csdn.net/acmman/article/details/50623047

时间: 2024-10-27 11:29:34

【Maven由浅入深】5.在Eclipse中建立简单的项目2的相关文章

【Maven由浅入深】4.在Eclipse中建立简单的项目1

我们上次讲到如何在Eclipse中创建Maven项目了,我们接下来来看看Maven用到了什么. 我们下面用maven开发一个简单的用户信息管理系统,我们就直接使用上一次创建的user-core来做这个系统. 我们在cn.edu.hpu.user.model包下创建一个user类 其中内容 package cn.edu.hpu.user.model; public class User { private int id; private String username; private Strin

sqlite3-如何在eclipse中建立数据库并与SQLite developer连接

问题描述 如何在eclipse中建立数据库并与SQLite developer连接 如题,如何在eclipse中代码建立数据库,或者用哪种更为简洁的方法能够建立数据库并与SQLite developer连接,我尝试用SQLite3,但是显示SQLite3不是内部或外部命令,也不是可运行的程序或批处理文件.求大神指教 解决方案 你是用什么语言? 你试试idea吧,idea直接可以连接多种数据库,并且可以可视化管理. 解决方案二: 没有听说在eclispe建立数据库的,eclipse能够与数据库连接

eclipse ...-eclipse中新建的web项目怎么连接数据库

问题描述 eclipse中新建的web项目怎么连接数据库 现在在eclipse中新建了web项目,用struts2做的,用于登录,但现在只能指定一个用户名用于判断是否能登录成功,现在想连接数据库,登录时判断用户名是否在该数据库中,这样就可以多个登录了.那么该怎么连接数据库呢?具体分几步. 解决方案 Eclipse中新建动态web项目ubuntu eclipse 如何新建web项目eclipse新建JAVA项目导入web项目 解决方案二: jdbc链接 具体代码能百度到 解决方案三: 可以用原生态

android 程序运行-eclipse中android模拟器运行项目,需手动才能看到结果

问题描述 eclipse中android模拟器运行项目,需手动才能看到结果 如题!!!!!!!!!!!!!!!!!!!!!!! eclipse中android模拟器运行源程序,run as 之后,只是安装apk文件,仍需手动点击才能看到结果,为何? run as 之后console一直处于如下状态 [2014-03-06 17:27:44 - investly_android_phone] Installing investly_android_phone.apk... [2014-03-06

eclipse中svn问题:项目共享的时候,出现如下:项目已有SVN/目录,有可能他先前已经共享

问题描述 eclipse中svn问题:项目共享的时候,出现如下:项目已有SVN/目录,有可能他先前已经共享 求解!多谢了! 解决方案 重新创建工作空间,把你之前 拉的项目断开链接 解决方案二: 项目共享到SVNMyEclipse共享项目到SVN服务器MyEclipse共享项目到SVN服务器 . 解决方案三: 重新创建工作空间,把你之前 拉的项目断开链接

maven compile报错-eclipse中指定父pom的compile插件版本后子工程报错

问题描述 eclipse中指定父pom的compile插件版本后子工程报错 开发环境:eclipse mars,m2eclipse,maven3.3(external) parent pom中,Management配置compile插件,但是不指定版本, son pom中不配置compile-Plugin, 此时执行编译:发现使用的是compile plugin version = 3.1 问题开始: 此时修改 Management配置compile插件version= other,比如3.3

eclipse中启动tomcat的项目路径

在eclipse中启动的tomcat,启动后的项目路径: D:\workspace        这里是你的工作目录         \.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps 这里是你的tomcate的项目目录 D:\workspace        这里是你的工作目录         \.metadata\.plugins\ 在这里面,可以修改一系列东西,包括你的项目启动时间,默认45S,这些问题等--

eclipse中如何发布java项目

问题描述 请教大家一个问题,为什么我的eclipse中没有服务器发布图标,tomact服务器已安装,是需要安装myeclipse插件吗 解决方案 解决方案二:你要新建一个DynamicWebProject在Targetruntime中选择服务器然后配置下服务器就行了!解决方案三:楼上参考哦..解决方案四:window->showview->servers解决方案五:楼上已经给你解决啦解决方案六:ECLIPSE是需要你下载tomcat插件安装上后才会跟myeclipse一样显示出来的.解决方案七

【Maven由浅入深】3.在Eclipse中创建maven工程

紧接着上一篇,下面我们来学习如何在Eclispe(MyEclipse)中创建Maven工程. 如果我们使用的是光秃秃的eclipse(最原始的),那么我们要为eclipse下载一个插件,即是m2eclipse 我使用的是MyEclipse8.5版本,其中已经安装好了Maven插件. 打开我们的MyEclipse,我们点击Windows选项,然后选择Preferences选项,然后我们可以看到里面有一个Maven选项: 这是Myeclipse直接给我们的Maven,这个Maven我们是不能直接使用