MyEclipse下创建基于Maven集成junit的web项目教程

来源:互联网 发布:双色球公式计算法 编辑:程序博客网 时间:2024/05/19 03:23

先是为了学SpringMVC,看了一篇教程,光是SpringMVC导入的包就一堆,一个一个手动添加先不说包冲突,光是包全不全都够新手捣鼓好一会。还是先从maven搞起吧。看教程写着"maven提倡使用统一的标准目录结构"想着我还是按着标准来比较好,然而网上好多博客都没说这标准目录结构是怎么来的,一句建完项目目录就长这样。惊了,怎么我的工程新建完就不是这个样子呢,你这少了几步吧,写教程走点心啊喂。最后粗看了下《maven实战》,又看了好几篇教程,排了一些错,终于ok了,现在把过程记下来,以后要用可以参考下。


准备工作:

1.知道maven是干啥的

2.安装maven,我用的是maven3.2.5,安装很简单,下载后解压配一下环境变量就可以了。如果输入mvn -v命令时,提示mvn -v不是内部或外名命令可以参考:

http://blog.csdn.net/libertine1993/article/details/52526022

3.修改setting.xml配置本地的maven仓库位置(可选)


在MyEclipse下创建基于Maven的Web项目:

1.首先使用我们自己的jdk替换myeclipse自带的jdk, 用我们自己的maven来替换myeclipse自带的maven

按顺序选windows->Preferences->MyEclipse->Maven4MyEclipse, 替换掉自带的jdk,截图左边是已经替换好的,点右边的Directory选择javahome的目录就行了



展开Maven4MyEclipse菜单,点Installation可以看到下面界面,点右侧的Add添加我们的maven



然后点下面的User Settings, 将setting文件设置为我们maven自己的setting,仓库设置成我们在setting中指定的目录。(这个有时候会自动关联,但是还是看一下比较好,不一致就改过来)


这一步做完,myeclipse自带的maven就被替换成我们的maven了。


2.创建web工程

File->new->web project, 输入项目名点finish。如果第一次新建一个支持maven的web工程,由于maven需要下载对应的依赖包,可能时间会比较长。以后再次创建就很快了。

如果创建完工程,pom.xml文件报错Failure to transfer org.codehaus.xxx from xxxx可以参考:点击打开链接

这一步走完工程是这个样子的,离标准的maven结构还有一定差距。我们手动再做一些配置(厉害了我的哥,居然是手动配置orz)


在src/main/java目录上,右键build path -> remove from build path, 现在src下的main目录可以看到源代码根目录java文件夹了:


在src目录下新建项目测试根目录test文件夹,在main下面新建resources资源文件夹,然后把resources和java目录一起复制一份到test目录下。然后选中main和test目录下的java,resources这四个文件夹,右键Build Path->Use As Source Folder。这样我们就得到了一个基本满足maven标准结构的web工程。


到这里一个支持mavent的空的web项目就新建完了。


下面来试试水, 使用maven来集成Junit:

根目录下的pom.xml是定义依赖的地方,把junit的依赖加进pom.xml下的denpendencies标签下。(你会看到target目录下的项目目录下也有一个pom.xml,你在根目录对pom.xml的修改会同步到target下的pom.xml)

    <!--测试-->    <dependency>        <groupId>junit</groupId>        <artifactId>junit</artifactId>        <version>4.11</version>        <scope>test</scope>    </dependency>

然后编写一个juint的测试代码,在main的java目录下新建Hello.java类

public class Hello {public String helloTest(int i){if(i == 1){return "hello-one";}return "hello-xxx";}}
然后我们在test的java目录下新建一个用来测试Hello.java的测试类TestHello.java

import org.junit.Assert;import org.junit.Test;public class HelloTest {@Testpublic void test(){ //当我敲出@Test,并敲完函数的大括号时,按下ctrl+shift+o可以自动引入junit的包,因为maven已经帮我把依赖的包下载下来了String actual = new Hello().sayHello(1);String expected = "hello-1";Assert.assertEquals(expected, actual);} }
当我按下ctrl+shit+o来导入使用的junit类时,支持maven的项目可以引入相应的类。而当我把一样的代码复制到一个不支持maven的项目而且也没有手动添加junit依赖jar包的项目下,可以看到报不能识别我们导入的类的错,这样可能你就能稍微体会到maven的好处之一依赖管理(可能我们的工程太简单了,所以这种好处没有得到很好的体现,但是作为教学用足够了)。


新建完测试类,我们的工程长这个样子。


接着,我们在工程上右键run as -> maven test, 可以看到测试类的运行结果, 如我们预期的运行成功了。注:maven test,maven clean之类的命令含义参见最后的附录。


如果读者有兴趣的话可以搜索下tomcat7-maven-plugin一款自动部署应用到tomcat的maven插件,可以在pom.xml中引入,个人觉得这个不是必须的就不讲了。

最后我们把项目部署到tomcat上

1.先把myeclipse自带的tomcat替换成我们自己的,Windows->preference按下图配好我们自己的tomcat



点右上角的“deploy myeclipse j2ee ....”, 点add加入我们的tomcat,finshed






在下面的Server标签下,选中我们配的tomcat6,右键run就ok了。

访问localhost:8080/excited/index.jsp可以看到如下页面。



附录:

myeclipse 常用maven命令:

1. clean 用于清理输出目录target/

2. compile用于编译项目主代码 

3. test 用于编译运行测试代码

4. package 接受编译好的代码,打包成可发布的模式

5. install 将包安装到maven本地仓库

6. Deploy将最终的包复制到远程仓库

执行以上命令时,clean是不会自动执行的,因为clean和其他5个命令是不同的生命周期,因此需要使用组合命令。


参考:

《maven实战》

博客园:七天学会maven























0 0