发表于: 2017-07-11 21:09:22
2 1322
一.今天完成的主要事情
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命令执行单元测试
评论