在《maven快速入门第六讲——依赖的作用范围》这一讲中,我详细介绍了依赖的作用范围。而在本讲中,我会介绍依赖的传递性,你听的没错,依赖是具有传递性的。但是,我们也要明白工程与工程之间也是有依赖关系的,正如下图所示。
依赖具有传递性
在前一讲中,我们使用maven分模块构建了一个聚合工程。接下来,我就要在该聚合工程的基础上编写代码了。
首先,在crm-dao子工程中创建相应的接口与实现类。
-
接口(比如说ICustomerDao.java)
package com.meimeixia.crm.dao; public interface ICustomerDao { }
-
以上接口的一个实现类(例如CustomerDao.java)
package com.meimeixia.crm.dao.impl; import com.meimeixia.crm.dao.ICustomerDao; public class CustomerDao implements ICustomerDao { }
然后,同样在crm-service子工程中创建相应的接口与实现类。
-
接口(比如说ICustomerService.java)
package com.meimeixia.crm.service; public interface ICustomerService { }
-
以上接口的一个实现类(例如CustomerService.java)
package com.meimeixia.crm.service.impl; import com.meimeixia.crm.service.ICustomerService; public class CustomerService implements ICustomerService { private ICustomerDao customerDao; public void setCustomerDao(ICustomerDao customerDao) { this.customerDao = customerDao; } }
此时,你会发现以上CustomerService实现类编写好之后,报错了。
eclipse提示我们要在crm-service子工程中创建一个ICustomerDao接口,这显然不能够啊!因为这里是要导入crm-dao子工程中的ICustomerDao接口。我们的crm-service子工程将来要把数据存储到数据库中,必然需要依赖crm-dao子工程,所以需要在crm-service子工程的pom.xml文件中添加crm-dao子工程的依赖,即添加crm-dao子工程的工程坐标。大家可以按照下图所示的步骤来进行操作。
点击OK按