发表于: 2017-07-11 21:09:22

2 1324


一.今天完成的主要事情

1.用maven命令跑单元测试

首先.maven test可以执行测试,如图

项目工程目录,有两个一般类,对应两个测试类,代码都很简单,只是简单的打印

运行在工程目录下运行mvn test 后可以看见

以上是mvn单独跑测试

当使用mvn package或install时,因为这两个构建周期中都包含测试,所以会默认执行测试,可以在执行过程中查看如同上图一样的效果,就不贴图了

但是我们也可以通过几种方式使mvn在打包的时候不执行测试或者有选择的执行某个测试

1.打包时不执行测试

第一种方式可以通过在pom.xml文件中添加下端代码实现

执行完毕后就会跳过测试,执行到测试周期时会显示

第二种方式是通过mvn test后加参数的形式跳过测试

一是mvn clean package -DskipTests=true,即

执行结果

事实上,该命令的效果和上面在pom.xml文件中添加的代码的结果是一样的

二是 mvn clean package -Dmaven.test.skip=true

执行结果也是测试被跳过

但这条命令和上条命令有所区别,从执行结果可以看到,这条命令更本就不会编译测试源代码,也就是说,连测试源代码也跳过了,而上条命令只是跳过测试执行,但还是会编译测试文件

第三种是可以在测试时指定要具体执行哪个测试类,如图,要求执行HelloJavaTest这个测试类

执行结果,可以看到,确实是该类被执行,而另一个类HelloWorldTest则没有执行

还有就是一般来说mvn生成的包时不能执行的,因为没有确定主方法的位置,执行时会发生找不到主方法入口,要执行的话要在pom.xml中添加如下代码

           <plugin>

            <groupId>org.apache.maven.plugins</groupId>

            <artifactId>maven-shade-plugin</artifactId>

            <version>1.2.1</version>

            <executions>

                <execution>

                   <phase>package</phase>

                   <goals>

                      <goal>shade</goal>

                   </goals>

                   <configuration>

                      <transformers>

                         <transformer

                          implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">

                            <mainClass>com.putaoteng.controller.HelloWorldDemo</mainClass>//主方法所在类

                         </transformer>

                      </transformers>

                   </configuration>

                </execution>

            </executions>

         </plugin>

这样才能生成一个可以执行的包

2.安装并配置tomcat

tomcat的安装配置比较简单,网上都有,安装配置成功后的结果如下

接下来在eclipse中配置tomcat,配置成功后可以直接从eclipse中启动tomcat服务器

配置成功后,用maven创建web工程,希望可以将maven工程部署到tomcat中,使浏览器中可以输出hello,world,但在这个过程中遇到了问题:

首先,按照网络上的教程配置了maven的settings.xml文件,tomcat的tomcat-users.xml文件,maven工程的pom.xml文件之后,三个文件的配置如下图:

首先,创建一个管理tomcat的账号,设置账号密码,并且开启权限

其次,在maven全局配置中配置tomcat服务,其中的账号密码和tomcat-users.xml文件中账号密码一致

然后配置,pom.xml文件,要注意,server属性中的值要和maven全局配置的id相同

配置完毕后,用mvn tomcat7:deploy命令部署web工程到服务器,然而报错

Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin:2.1:redeploy (default-cli) on project tomcat-maven-demo: Cannot invoke Tomcat manager: Connection to http://localhost:8080 refused: Connection refused: connect -> [Help 1]

网上查找后才发现是没有开启tomcat服务

开启后,发现部署成功了

[INFO] tomcatManager status code:200, ReasonPhrase:

[INFO] FAIL - Application already exists at path [/tomcat-maven-demo]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 2.991 s

[INFO] Finished at: 2017-07-11T20:57:03+08:00

[INFO] Final Memory: 15M/171M

[INFO] ------------------------------------------------------------------------

但是打开浏览器输入地址却没有hello,world

于是,我以为是自己配置的问题,各种找资料,发现都没有结果,最后,才想起来,在网页中显示数据是要用jsp文件编写,然后执行显示的.

现在由于时间原因,没有继续尝试,昨天预计的JDBC的进阶版实现也没有敲,总的来说,效率很低下,明显不如前几天

总结一下:

1.只是听其他师兄说要配置tomcat服务器,但却没有好好了解以下tomcat的基础知识以及jsp和serverlet的相关知识,直接上手配置,导致中间出现的bug更本不知道怎么去调式,只能不断的查找资料实例,犯了典型的只知道抄,但是不知道为什么抄的错误行为

2.当出现bug,并且比较难调的时候,应该果断先暂停,先完成昨天计划的事情,不要死钻牛角尖,可今天却一直纠结于这个问题,浪费了很多时间

现在来看,今天的学习方法出现了问题,使用了错误的学习方式,所以造成了效率极低的后果

二.明天计划完成的事情

1.完成昨天计划本来今天应该完成的事情,用JDBC链接数据库,整合log4j和单元测试,实现批处理插入

2.学习tomcat,jsp和serverlet的基础知识,争取完成在浏览器上静态的输出hello,world

三.遇到的问题

以上已经描述

四.收获

1.学习方式方法非常重要,一旦使用了错误的学习方式方法,往往会事倍功半,浪费很多时间

2.了解了用mvn命令执行单元测试


返回列表 返回列表
评论

    分享到