首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Maven3实战札记02坐标和依赖-1

2012-10-29 
Maven3实战笔记02坐标和依赖--1package com.liuyan.account.mail.implimport javax.mail.MessagingExcept

Maven3实战笔记02坐标和依赖--1

package com.liuyan.account.mail.impl;import javax.mail.MessagingException;import javax.mail.internet.MimeMessage;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.mail.javamail.MimeMessageHelper;import com.liuyan.account.mail.AccountEmailService;public class AccountEmailServiceImpl implements AccountEmailService {private JavaMailSender javaMailSender;public JavaMailSender getJavaMailSender() {return javaMailSender;}public void setJavaMailSender(JavaMailSender javaMailSender) {this.javaMailSender = javaMailSender;}private String systemEmail;public String getSystemEmail() {return systemEmail;}public void setSystemEmail(String systemEmail) {this.systemEmail = systemEmail;}@Overridepublic void sendMail(String to, String subject, String message)throws MessagingException {MimeMessage msg = javaMailSender.createMimeMessage();MimeMessageHelper msgHelper = new MimeMessageHelper(msg);msgHelper.setFrom(systemEmail);msgHelper.setTo(to);msgHelper.setSubject(subject);msgHelper.setText(message);javaMailSender.send(msg);}}

?之后在包/src/test/java编写测试用例

?

package com.liuyan.account.mail;import javax.mail.MessagingException;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.icegreen.greenmail.util.GreenMail;import com.icegreen.greenmail.util.ServerSetup;public class AccountEmailServiceTest {private GreenMail greenMail;@Beforepublic void startTest() {greenMail = new GreenMail(ServerSetup.SMTP);greenMail.setUser("suhuanzheng7784877@163.com", "1111");greenMail.start();}@Testpublic void sendMail() throws MessagingException {ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");AccountEmailService accountEmailService = (AccountEmailService) ctx.getBean("accountEmailService");String to = "suhuanzheng7784877@163.com";String subject = "测试";String message = "内容";accountEmailService.sendMail(to, subject, message);}@Afterpublic void stop() {greenMail.stop();}}

?单元测试也写完了,之后就是项目构建、打包了。

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p"><!-- 加载Properties文件 --><bean id="configurer"value="UTF-8" /><property name="host" value="${mail.host}" /><property name="username" value="${mail.username}" /><property name="password" value="${mail.password}" /><property name="javaMailProperties"><props><!-- 设置认证开关 --><prop key="mail.smtp.auth">true</prop><!-- 启动调试开关 --><prop key="mail.debug">true</prop></props></property></bean><bean id="accountEmailService" ref="javaMailSender"></property><property name="systemEmail" value="suhuanzheng7784877@163.com"></property></bean></beans>

mail.host=smtp.163.commail.username=suhuanzheng7784877@163.commail.password=111111mail.from=suhuanzheng7784877@163.commail.to=suhuanzheng7784877@163.com


?

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.liuyan.account</groupId><artifactId>MavenAccount-email</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>2.5.6</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>2.5.6</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>2.5.6</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>2.5.6</version></dependency><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.1</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.7</version><scope>test</scope></dependency><dependency><groupId>com.icegreen</groupId><artifactId>greenmail</artifactId><version>1.3.1b</version><scope>test</scope></dependency></dependencies><build><resources><resource><directory>src/main/resource</directory></resource></resources></build></project>

?

?运行一下命令。

mvn clean test

?自己的邮箱看看效果,多了一封邮件。Ok,再看本地仓库,唉~~~自己的c盘又添了不少东西。本地仓库会越来越大的。各位使用者要有心理准备,当然可以通过配置的方式转移本地仓库存储位置。

<groupId>com.liuyan.account</groupId><artifactId>MavenAccount-email</artifactId><version>0.0.1-SNAPSHOT</version>

?而其他项目需要你的模块为其服务的时候,也是根据坐标找到你的模块的。这就引出了下面依赖项的配置。这个模块依赖了Spring,不怕,我们从maven仓库中去取依赖就可以了,下面的问题就是:我们需要哪些依赖?这些依赖的版本是什么?

通过已有组件的坐标,我们可以轻易从Maven中心库中获取依赖包

<dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>2.5.6</version></dependency>

?描述我们这个邮件模块依赖org.springframework.spring-context-support.2.5.6.jar这个东东。果然,运行后在本地仓库中找到了
Maven3实战札记02坐标和依赖-1
?


?

这个表是嘛意思呢?就是说一个项目的第一直接依赖假如是compile范围,那么它的第二依赖包如果也是compile,那么本项目和第二依赖包的依赖范围就是compile。如果一个项目的第一直接依赖假如是compile范围,那么它的第二依赖包如果是test,那么本项目和第二依赖包不存在任何依赖关系,也是,第一直接依赖包和第二依赖包是测试的时候才用到的。无需影响到其他使用者。

1 楼 viei 2011-11-17   依赖关系图是自己画的还是工具生成的呢?

热点排行