参考资料:《鸟哥的Linux私房菜》
为什么在Linux的世界中选择vi,vim
vim是从 vi 发展出来的一个文本编辑器 。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs 并列成为类Unix系统用户最喜欢的编辑器。
三种模式:
注意:编辑模式和命令行模式之间不能切换,必须先转换到一般模式
命令模式:
一般模式:
移动光标:
移动单词
移动行
移动屏幕
移动页
文本编辑:
学习要点:
在进行vim ~/.bashrc 更该环境变量时非常高效。
注意:/etc/profile和~/.bashrc的区别
export完环境变量后注意source ~/.bashrc 来激活变化。如果只是在bash shell命令行中export环境变量,则再次打开终端时则不会保存。
Ant 是一个 Apache 基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。
Ant 的构件文件是基于 XML 编写的,默认名称为 build.xml。ant 命令默认同一目录下的的 build.xml 文件。
基本用法:
target 元素,它为 Ant 的基本执行单元,它可以包含一个或多个具体的任务。
depends 属性用于描述 target 之间的依赖关系,若与多个 target 存在依赖关系时,需要以“,”间隔。
ant.file:buildfile 的绝对路径。
学习要点:
注意各命令之间的依赖关系以及文件构建的目录。
和标签中,都可以使用fileset, dirset, pathelement等子标签来指明jar/zip, classes目录等。它们之间的区别如下:
可以独立定义,并赋予id供其它或引用。不能独立定义,但可以通过ID引用。classpath主要用于编译和运行时,指定具体的类路径。path则类似于一个的路径变量。
<project name="helloworld" default="test" basedir="..">
<property name="lib.path" value="lib"/>
<path id="compile.path">
<fileset dir="${lib.path}">
<include name="**/*.jar"/>
fileset>
<pathelement path="bin/classes"/>
path>
<path id="run.path">
<path refid="compile.path" />
<pathelement location="org" />
path>
<target name="clean">
<delete dir="bin"/>
target>
<target name="compile" depends="clean">
<mkdir dir="bin/classes"/>
<javac srcdir="src" destdir="bin/classes" classpathref="compile.path" includeantruntime="false" />
target>
<target name="run" depends="compile">
<java classname="helloworld">
<classpath refid="run.path" />
java>
target>
<target name="test" depends="clean, compile">
<junit printsummary="true">
<classpath refid="compile.path"/>
<test name="helloworldTest"/>
junit>
target>
project>
单元测试的目的: 测试当前所写的代码是否是正确的, 例如输入一组数据, 会输出期望的数据; 输入错误数据, 会产生错误异常等.
在单元测试中, 我们需要保证被测系统是独立的, 即当被测系统通过测试时, 那么它在任何环境下都是能够正常工作的. 编写单元测试时, 仅仅需要关注单个类就可以了.
用法:
public class HelloWorldTest {
public HelloWorld helloworld = new HelloWorld( );
@Test
Public void testHello() {
helloworld.hello();
assertEquals( "Hello World!" , helloworld.getStr() );
}
}
注意:
如果没有在测试类中加入main函数,则需要在运行时加入
–ea org.junit.runner.JUnitCore
参数。
或者在测试类加入
public static void main(String[] args) {
org.junit.runner.JUnitCore.main("helloworldTest");
}
设置环境变量:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:/opt/resources/junit-4.9.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
JUnit FAQ
Sonar 是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维
度检测代码质量。通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy 等等二十几种编程语言的代码质量管理与检测。
检测内容:
Spaghetti Design
用法:
添加环境变量
export SONAR_HOME=/home/administrator/Downloads/sonar-3.7.4/bin/linux-x86-64
export SONAR_RUNNER_HOME=/home/administrator/Downloads/sonar-runner-2.4
export PATH=$SONAR_RUNNER_HOME/bin:$PATH
cd SONAR_HOME
./sonar.sh start //启动服务
./sonar.sh stop //停止服务
./sonar.sh restart //重启服务
访问http:\localhost:9000,如果显示 SonarQube 的项目管理界面,表示安装成功。
在项目源码的根目录下创建 sonar-project.properties 配置文件,其中 projectKey 是项目的唯一标识,不能重复;要修改的内容包括 sonar.projectKey,sonar.projectName,java-module.sonar.projectBaseDir 三项;
编写好sonar-project.properties 文件后,在 shell 里面进入含有 sonar-project.properties文件的目录,输入 sonar-runner,运行测试;
出现以上信息时,证明运行成功,打开http:\localhost:9000 查看对应项目的情况即可。
注意:每次使用完 Sonar,记得关闭,进入启动目录,./sonar.sh stop
[官方文档](http://docs.codehaus.org/display/SONAR/Analysis+Parameters)
总结: