搭建Jenkins集群
安装Jenkins
下载Jenkins
1 | wget http://updates.jenkins-ci.org/latest/jenkins.war |
启动Jenkins war包,默认8080端口
1 | java -jar jenkins.war |
后台启动Jenkins
1 | nohup java -jar jenkins.war --httpPort=8080 & |
查看日志
1 | tail -f nohup.out |
开放端口
1 | 查看想开的端口是否已开: |
Jenkins环境安装
Jenkins是一款由Java编写的开源的持续集成工具。
Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。Jenkins的主要开发者是川口耕介。Jenkins是在MIT许可证下发布的自由软件。
可以通过各种手段触发构建。例如提交给版本控制系统时被触发,也可以通过类似Cron的机制调度,也可以在其他的构建已经完成时,还可以通过一个特定的URL进行请求。
云服务器 ECS CentOS 7配置默认防火墙 Firewall
阿里云服务器的 CentOS7 下默认的防火墙是 Firewall,替代了之前的 iptables,Firewall 有图形界面管理和命令行管理两种方式,本文简要介绍命令行 Firewall 的使用。
配置 Firewall
进入系统之后,CentOS7 默认是已安装了 Firewall,但是没有启动的,所以需要先启动下 Firewall,同时设置开机自启动
1 | systemctl start firewalld ##启动Firewall |
1 | ln -s '/usr/lib/systemd/system/firewalld.service' '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service' |
常用命令介绍
1 | firewall-cmd --state ##查看防火墙状态,是否是running |
Docker安装与常用命令
Effective Java Item10 覆盖equals时请遵守通用约定
对于所有对象都通用的方法
尽管Object
是一个具体类,但是设计它主要是为了扩展。它所有的非final
方法(equals
、hashCode
、toString
、clone
和finalize
)都有明确的通用约定(**general contract
**),因为它们被设计成是要被覆盖(override
)的。任何一个类,它在覆盖这些方法的时候,都有责任遵守这些通用约定;如果不能做到这一点,其他依赖于这些约定的类(例如HashMap
和HashSet
)就无法结合该类一起正常运作。
本章将讲述何时以及如何盖这些非final
的Object
方法。本章不再讨论finalize
方法,因为Item 8已经讨论过这个方法了。而Comparable.compareTo
虽然不是Object
方法,但是本章也对它进行讨论,因为它具有类似的特征。
Effective Java Item9 优先使用“try-with-resources”来代替“try-finally”
Java库包含许多必须通过手动调用close
方法关闭的资源。其中包括:InputStream
,OutputStream
和java.sql.Connection
。关闭资源常常会被客户端所忽视,这会导致可怕的性能问题。虽然很多资源使用了终结器来作为安全网,不过终结器却并不那么尽如人意(Item 8)。
Effective Java Item8 避免使用终结器与清理器
终结器是不可预测的、常常会很危险,而且通常没必要。使用终结器会导致奇怪的行为、孱弱的性能以及可移植性问题。终结器有一些有效的用途,我们将在后面的条款中介绍,但是作为一个规则,你应该避免他们。在Java 9中,终结器已经被弃用,但是Java库仍然在使用它们。Java 9中,替代终结器的是清除器(cleaner)。清除器比终结器危险小,但仍然不可预测、效率慢,而且通常没有必要。
Effective Java Item7 消除废弃的对象引用
如果您从使用手动管理内存的语言(如C或c++)切换到使用垃圾收集语言(如Java),那么你作为程序员的工作就会变得容易得多,因为你的对象在使用完后会自动被回收。 当你第一次体验这种编程的时候,它看起来就像是魔术一般。它很容易给人留下这样的印象:你不必考虑内存管理,但这并不完全正确。