发表于: 2020-10-23 23:51:38
1 1463
今天完成的事情:
早上看自己过去写的日报总结一些经验。
下午因为昨天重装了服务器的系统,重新将本地数据库部署到远程DB。
学会了用数据传输直接传递,不用运行SQL文件
然后在服务器上使用Dnf/Yum 安装 Apache Maven
1.安装Maven指令:sudo dnf install maven
2.运行mvn -version命令验证安装版本:mvn -version
输出结果应该是这样
Apache Maven 3.5.4 (Red Hat 3.5.4-5)
Maven home: /usr/share/maven
Java version: 1.8.0_265, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.265.b01-0.el8_2.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-147.5.1.el8_1.x86_64", arch: "amd64", family: "unix"
安装JDK
1.安装JDK指令:sudo dnf install java-8-openjdk-devel
2.运行java -version命令验证安装版本:java -version
输出结果
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM (build 25.265-b01, mixed mode)
设置环境变量
运行指令,创造一个maven.sh文件:sudo nano /etc/profile.d/maven.sh
保存并且关闭文件。这个脚本将会在shell 启动时执行。
通过运行 chmod命令,使脚本可执行:sudo chmod +x /etc/profile.d/maven.sh
使用source命令加载环境变量:source /etc/profile.d/maven.sh/mvn -version
直接用Maven命令跑单元测试
在网上搜(怎么在服务器上用maven跑单元测试,maven项目如何在Linux下运行等等)的结果都是用spring+mvc,还有tomcat等等,感觉完全不是一件事情,问了一下师兄,和在cmd中的指令是一样的,把本地maven单元测试的文件上传到服务器上就好。感觉不是很会搜索
1.先使用mvn clean 清除target文件夹
2.使用mvn test ,会运行错误,因为源代码有个是错的
3.运行特定的测试类AppTest1,命令mvn test -D test=AppTest1
4.运行测试类中指定的方法AppTest#testPrintHelloWorld2,命令mvn test -D test=AppTest#testPrintHelloWorld2
5.运行测试类中指定的方法AppTest#testPrintHelloWorld,命令mvn test -D test=AppTest#testPrintHelloWorld,会报错,结果不相等
使用maven跑main方法,mvn exec:java -Dexec.mainClass="com.jnshu.App"
报错
在网上搜了很久,找不出来结果。于是我以为是源代码的问题,在IDEA跑了一遍,发现并没有问题
于是用cmd跑,发现出现了一样的问题,于是去问了师兄,师兄说是你使用mvn clean的时候没有编译,没有编译,自然跑不了main方法。头疼,折腾这么久,就是这个错误。
于是先编译,在来跑main方法就跑通了
1.
2.
下次找不到错误在后面加上 -X 启用debug模式试试看
用maven命令跑单元测试 增删改查
原始的
增加:
删除:
修改:
查找:
明天计划的事情:
测试一下不关闭连接池的时候,在Main函数里写1000个循环调用会出现什么情况。测试一下连接DB中断后TryCatch是否能正常处理。
遇到的问题:
在跑maven单元测试(增删改查)的时候,出现以下错误:
于是在网上搜了一些,是pom.xml文件缺少这个导致的
也给了警告:
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
需要在pom.xml文件加上这个:
在本地成功跑通:
又一次在服务器上跑单元测试增加,报错
在网上搜出来的结果
使用Navicat for mysql 连接没有问题,但是一用项目连接就出现上面错误,造成这个错误的主要原因是安装的是mysql8.0版本,而项目使用的驱动包是5.1版本,将项目驱动版本改成8.0.11成功解决了此问题。
于是直接服务器上的pom.xml把版本改成了8.0.21和服务器MySQL的版本一样
修改后运行成功
不是很能理解为什么在服务器要跑maven的单元测试,因为觉得在服务器修改很繁琐,没有在IDEA操作起来方便,在本地修改好了,然后在上传到服务器,不是更方便快捷吗?
收获:
熟悉了maven命令,cmd命令,Linux命令。在服务器上跑通了单元测试和main方法
评论