【中级实训】StudyReport.md
Vim
vi/vim 共分为三种模式,分别是
- 命令模式(Command mode)
- 输入模式(Insert mode)
- 底线命令模式(Last line mode)
命令模式
在终端输入vim
或vi
加文件名启动 vi/vim后,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。
常用的几个命令:
i
切换到输入模式,以编辑文本。x
删除当前光标所在处的字符。:
切换到底线命令模式,以在最底一行输入命令。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式
在输入模式中,可以编辑文本(按键使用与日常的编辑模式一致)
按下ESC
键,退出输入模式,切换到命令模式
底线命令模式
在命令模式下按下:
(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q
退出程序w
保存文件wq
保存并退出q!
不保存直接退出
同样,按ESC
键可随时退出底线命令模式。
关于vim中文件内容及模式说明
以下图片来自于参考资料vim菜鸟教程
Java编程
-
Java语法相关内容可参见我之前的博客-java学习笔记
-
说明
- java:这个可执行程序其实就是JVM,运行Java程序,就是启动JVM,然后让JVM执行指定的编译后的代码;
- javac:这是Java的编译器,它用于把Java源码文件(以.java后缀结尾)编译为Java字节码文件(以.class后缀结尾);
- jar:用于把一组.class文件打包成一个.jar文件,便于发布;
- javadoc:用于从Java源码中自动提取注释并生成文档;
- jdb:Java调试器,用于开发阶段的运行调试
-
首先检查是否安装了Java环境
终端输入:java -version
若返回类似上图所示的结果,表明Java环境已安装配置成功,否则可参考CentOS 7 安装 JAVA环境(JDK 1.8)进行安装配置。 -
按照课程要求,我们以一个简单的实例来展示Java编程,创建目录
HelloWorld
,进入该目录创建文件HelloWorld.java
(文件名需与类名一致), 代码如下://HelloWorld.java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World, I am Wang Yibo's Big fan!"); } }
-
编译运行,在终端输入如下命令:
$ javac HelloWorld.java $ java HelloWorld
P.S. 如果这里
javac
报错
则可能由于安装的JDK只有JRE导致的,使用yum安装相关包即可:$ yum install java-devel
-
运行结果:
ant
Ant是一个Java库和一个软件工具,用于自动化软件构建过程,如编译,运行,测试和组装Java应用程序。可以代替使用javac、java和jar等命令来执行java操作,从而达到轻松的构建和部署java项目的目的。
一般来说,Ant 的构建文件默认为 build.xml,放在项目顶层目录中。然而,并没有限制构建文件必须命名为 bulid.xml,也并不限制放在项目顶层目录中。你可以将构建文件命名为其他名字,也可以将它放在项目的其他地方。
使用ant构建Java项目
利用Ant的javac任务来编译java程序
-
HelloWorld.java
代码同上 -
在根目录
HelloWorld
下建立build.xml
文件,在该文件中编译HelloWorld.java
文件,并将编译后的class文件放入myJavaClass
目录中,在编译前,需先清除myJavaClass目录<?xml version="1.0"?> <project name="HelloWorld-javac" default="compile" basedir="."> <target name="clean"> <delete dir="myJavaClass"/> </target> <target name="compile" depends="clean"> <mkdir dir="myJavaClass"/> <javac srcdir="." destdir="myJavaClass"/> </target> </project>
-
在根目录下运行命令
ant
,结果如下图所示:
使用Ant的java任务运行Java程序
P.S. 为了使工程更规范,对项目目录结构做如下小修改
-
若要使用Ant中的java任务实现运行Java程序的功能,则需修改上述
build.xml
的内容,修改后如下:<?xml version="1.0"?> <project name="HelloWorld-java" default="run" basedir="."> <target name="clean"> <delete dir="myJavaClass"/> </target> <target name="compile" depends="clean"> <mkdir dir="myJavaClass"/> <javac srcdir="src" destdir="myJavaClass"/> </target> <target name="run" depends="compile"> <java classname="HelloWorld"> <classpath> <pathelement path="myJavaClass"/> </classpath> </java> </target> </project>
-
运行结果
在Eclipse IDE环境下使用ant build
以下以Eclipse IDE中创建一个简单的HelloWorld
Java项目为例。
P.S. 若未安装Eclipse可参考centos7安装eclipse
-
运行Eclipse,创建Java Project
HelloWorld
-
创建一个Java类
HelloWorld
,代码同上面的HelloWorld代码 -
创建一个文件夹来组织已编译的Java类文件。 该文件夹的名称可以是任意的,我使用的名称是
myJavaClass
-
创建
build.xml
文件,用来配置构建。build 是默认名称,但也可以设置其他名称。代码如下:<?xml version="1.0" encoding="UTF-8"?> <project name="HelloWorld-Ant" default="run"> <target name="run" depends="compile"> <java classname = "HelloWorld"> <classpath path="myJavaClass"></classpath> </java> </target> <target name="compile"> <javac includeantruntime="false" srcdir="./src" destdir = "myJavaClass"></javac> </target> </project>
-
项目目录结构如下图所示:
-
以Ant Build方式运行程序,右键单击
build.xml
文件,然后选择Run as
->Ant Build
,运行结果如下图所示:
JUnit
JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量。
创建测试类代码,如MyTest.java
,在该类中进行测试的方法前添加标注@Test
,借助Eclipse IDE进行JUnit Test,具体操作可参考Eclipse JUnit简单示例
SonarQube
sonar安装
-
从官网下载
sonar-3.7.4.zip
和sonar-runner-2.4.zip -
解压
unzip
,将两个文件目录均移动至指定目录,我这里选用的是/opt
-
配置环境变量
sudo vim /etc/profile
,添加如下内容:export SONAR_HOME=/opt/sonar-3.7.4/bin/linux-x86-64 export SONAR_RUNNER_HOME=/opt/sonar-runner-2.4 export PATH=SONAR_RUNNER_HOME/bin:$PATH
-
source /etc/profile
使配置即刻生效 -
cd $SONAR_HOME
进入启动目录:
./sonar.sh start
:启动服务
./sonar.sh stop
:停止服务
./sonar.sh restart
:重启服务 -
启动服务,访问
0.0.0.0:9000
或localhost:9000
浏览器中成功显示SonarQube的页面表示安装成功
P.S. 如果访问SonarQube页面不成功的话,有可能是防火墙的端口未打开成的,可以通过如下命令开启:$ systemctl start firewalld $ firewall-cmd --state
具体更详细内容可参考Linux安装sonarQube
将sonar-runner作为服务启动
-
添加服务启动脚本
sudo vim /etc/init.d/sonar-runner
,内容如下:#!/bin/sh # # rc file for SonarQube # # chkconfig: 345 96 10 # description: SonarQube system (www.sonarsource.org) # ### BEGIN INIT INFO # Provides: sonar # Required-Start: $network # Required-Stop: $network # Default-Start: 3 4 5 # Default-Stop: 0 1 2 6 # Short-Description: SonarQube system (www.sonarsource.org) # Description: SonarQube system (www.sonarsource.org) ### END INIT INFO /usr/bin/sonar-runner $*
-
设置随系统启动
$ sudo ln -s $SONAR_RUNNER_HOME/bin/sonar-runner /usr/bin/sonar-runner $ sudo chmod 755 /etc/init.d/sonar-runner $ sudo chkconfig --add sonar-runner
-
这时,在系统的任意目录下都可以运行命令
sonar-runner
,例如:
使用SonarQube分析源码
- 进入工程根目录,我这里是
~/桌面/CODE/EasyCalculator
- 创建配置文件:
code sonar-project.properties
,文件内容如下:
#required metadata
#projectKey项目的唯一标识,不能重复
sonar.projectKey=EasyCalculator
sonar.projectName=EasyCalculator
sonar.projectVersion=1.0
sonar.sourceEncoding=UTF-8
sonar.modules=java-module
# Java module
java-module.sonar.language=java
java-module.sonar.sources=src
java-module.sonar.projectBaseDir=.
-
编写好
sonar-project.properties
文件后,回到项目根目录, 输入命令sonar-runner
,运行测试,结果如下:
表明运行成功 -
访问
localhost:9000
点击对应项目,查看代码分析结果
-
最后记得将sonar关闭
$ cd $SONAR_HOME $ ./sonar.sh stop
参考资料
Java API官方手册
vim使用手册
Ant易百教程
centos7下javac的问题
Ant构建文件
用Ant实现Java项目的自动构建和部署
Linux安装sonarQube
Eclipse JUnit简单示例