ubuntu的超级管理员root用户默认是不启用的,root默认是空密码,所以root是不能使用的。
为root设置密码,在终端执行
sudo passwd root
指令后,系统会提示你设置一个root账号的密码。在你没有经过当前用户密码验证的时候,还会要求你先输入当前用户的密码,然后才能设置root帐号的密码。设置完成后,就可以在终端切换到root用户了。切换用户su root或者su sunhao
ubuntu的超级管理员root用户默认是不启用的,root默认是空密码,所以root是不能使用的。
为root设置密码,在终端执行sudo passwd root
指令后,系统会提示你设置一个root账号的密码。在你没有经过当前用户密码验证的时候,还会要求你先输入当前用户的密码,然后才能设置root帐号的密码。设置完成后,就可以在终端切换到root用户了。
切换用户su root或者su sunhao
登陆路由器:一般地址为192.168.1.1,默认用户admin,密码admin。
隐射端口:找到“转发规则”―“虚拟服务器”―增加新条目–服务端口号设置为8080,IP地址设置为安装项目的IP,保存即可。
8080:指的是项目tomcat的端口号
找到外网IP:一般在“运行状态”-“WAN口状态”-“IP地址”中显示,如113...*
此时外网已经可以访问,不过路由器的IP地址是动态的,会经常变,可以通过安装个动态域名解析软件来解决这个问题,以花生壳为例子。
注册个动态域名解析花生壳帐号:http://www.oray.com/passport/register.php
登陆花生壳后,在域名管理注册一个免费域名
在安装项目的电脑上安装花生壳软件,并且使用花生壳帐号登陆,如果登陆成功,外网已经可以通过域名访问项目,地址为http://免费域名:8080/项目部署名
#Guava
Guava是Google公司开源的一个实用工具库,对Java类库进行了多方面的增强。比如说,对函数式编程的支持,新的集合类(Multimap等),Cache支持,等等。在Java8之前,Guava和Java之间的关系,可以表示成下面这幅图:
将安装包上传,放入/opt/software/redis
执行命令
tar -zxf redis-2.8.13.tar.gz
cd redis-2.8.13
make
sudo make install
make test
程序员,在外行看来是一个很高端的行业,搞IT的,高端人才,天天坐办公室,多爽。可是在我们自己看来,只有自己知道自己的苦。每天不固定的加班不说,还有忍受着客户各种无理苛刻的需求。
或许是我们自己对技术的热爱,对新技术的狂热追求,他甚至曾经有段时间超越我追求妹子的欲望。我可以为一个bug熬个通宵,我可以为了一个新技术狂啃3天馒头不出门,但是我忍受不了别人对我的努力不赞同。这可能就是最真实的程序猿。
程序猿不擅长与人交流,因为程序猿最擅长的是和电脑打交道,他们视电脑如媳妇,视代码如孩子,视新技术如新衣服一样的狂热追求。有人说,程序猿是最好的老公人选,他们有着固定的工作,拿着高薪,而且不会乱花钱,接触面很窄,很难出轨,经常会加班,不会约束到另一方。是的,我们确实是这样的状态,但是谁能知道我们心中的狂野吗?我们会骂,这傻逼系统,真垃圾,要我做,绝对比这好一百倍。还有这傻逼客户,怎么会提出这样傻逼的需求呢?
今天一个同事说要辞职了,问他原因,他说要去自己做生意了,觉得做程序猿没有前途,要去和朋友合伙卖手机。很好的一个想法,反过来我想想自己,除了能写的了一手好代码,又能干些什么?在公司,每天帮着同事解决各种他们解决不了的问题,然后听着他们说你好厉害啊,我觉得心里特别舒服,很有成就感,或者发现某一个问题很操蛋,然后自己熬了一个通宵写出一个工具,然后心满意足的群发一封邮件给各个同事,最好带着慢慢的成就感上床睡觉去了。可是,一走到外面,那情况就正好反过来了,别人都说,你怎么这个都不会。。。
我的生活很单调,除了公司、吃饭的地方、睡觉的地方就没有了,每个周末之前都在心里说,明天是个好周末,我要出去转转,结果周五或者周六晚上,领导或者现场一个电话来,说这里有问题,帮忙改改,明天要上线客户要看,我就哼哧哼哧的搞到2-3点钟,第二天一觉睡到下午,久而久之,也就习惯了这样的作息时间。以至于现在没了六块腹肌,没了胸肌,没了肱二头肌。啥也没了。
如果不做程序猿,我能做什么?去珠江路开个修电脑的店?在小区附近开个奶茶店?还是回老家和我爸一起做装潢?我他妈的到底能做什么?
现在是2014年1月14号晚上6点39。
虽然我现在还不知道你到底是谁?到底是哪里人?但是有些话我还是很想跟你说说。
首先,你可以说你不懂爱情,因为我自己也不太懂,咱可以一起去学习什么是爱情,什么是家庭。我们一起长大,一起慢慢的变老,直到死去。这不是很浪漫很幸福的事情吗。
其次,咱结婚以后,家里的财政大臣由你来当,我不会理财,也不喜欢去理财,所以这重任只能交给你来做了。我负责挣钱,你负责花钱。在家,你就是我的公主、我的皇上,我是你的取暖器、你的泄气包;在外,我是你的避风港、你的移动指路台、你的保镖。如果以后我们有了孩子,如果是女孩,那我会永远保护你们娘俩,如果是男孩,那我们爷俩永远会保护你。
最后,也是最重要的一点,我喜欢你能像对你父母兄弟姐妹一样的对待我的父母兄弟姐妹,因为他们是我在这个世界上除了你以外最亲最爱的人了,同样,我也会像对待我自己的父母兄弟姐妹一样对待你的父母兄弟姐妹。也只有这样,我们的小家庭才会永远的幸福美满。
现在,我想说一句:我会努力的去做一个合格的丈夫,以后我们有了孩子以后,我还会变成一个合格的父亲!
现在我还不知道你这熊孩子是男孩是女,不过不管你是男还是女,我都会爱你的。
如果你是男孩,在你没有上学之前,我不会要求你去背什么唐诗宋词,学什么乱七八糟的数学英语什么的,我会给你一个美好的童年。在你上学之后,我也不需要你考试每次都能考到第一第二名的,因为谁也不能保证每次考试都能考好。原则上的事情我会对你很严格的,但是我不会动手K你的,打你只能会让你变得更加叛逆。还有,在你18岁之后,请自己为你自己的路做决定,你老爹我只会给你建议。在你18岁之前,老爸我都是你的避风港,18岁之后,你要负责和我一起保护你老妈,一直到我老了,你就要保护我和你老妈了。
如果你是女孩,我会一直一直把你当成我的小公主,我会给你买最漂亮的衣服,吃最好的,用最好的。考试成绩神马的,老爸都不会要求你的,只需要你给我平平安安的。还有18岁之前不要谈恋爱,18岁之后谈恋爱了,必须要把那家伙给我带回来看看,老爸要是不同意看不上,你就赶紧的让他拜拜。我对你的他的要求就是:能够保护你,要对你百分之一百的好。我在想,在你出嫁的那天,我一定会哭的,因为有个男人把你从我身边抢走了。
好了,写到这里了,连媳妇都没有的人,在这胡思乱想。唉,洗洗睡吧。
PS:
最近整理了自己写的一个项目,使用maven+svn管理,idea开发,搭建了一个maven的私服.原来是凌乱不堪,所以费了好大劲才整理好,而且平时公司项目上事情多的一米…
下面说说使用的几个插件(至于那些dependency就让它们见鬼去吧)
不说废话了,代码贴上
clean插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<configuration>
<filesets>
<fileset>
<directory>F:/logs</directory>
</fileset>
<fileset>
<directory>../message-test</directory>
<includes>
<include>spy.log</include>
</includes>
</fileset>
<fileset>
<directory>../message-test/target</directory>
</fileset>
</filesets>
</configuration>
</plugin>
这个插件没啥好说的,要是不需要删除别的地方代码,就用默认的,不用任何配置
单元测试插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
单元测试没做好,一测就报错,干脆给skip了
resources
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/test-classes</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/webapp/WEB-INF/config</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
用来复制一些资源文件,配置都是直译的
war
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warName>${message.war.name}</warName>
<includeEmptyDirectories>true</includeEmptyDirectories>
<webResources>
<resource>
<directory>../message-easyjs</directory>
<targetPath>js</targetPath>
<excludes>
<exclude>**/.svn</exclude>
<exclude>**/*.iml</exclude>
<exclude>**/pom.xml</exclude>
</excludes>
</resource>
</webResources>
</configuration>
</plugin>
打war包的插件
jetty
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.10</version>
<configuration>
<!-- 配置扫描时间 -->
<scanIntervalSeconds>10</scanIntervalSeconds>
<!-- 配置项目在容器中的根路径 -->
<contextPath>${project.contextPath}</contextPath>
<!-- 配置jetty容器中的jndi -->
<jettyEnvXml>src/main/resources/jetty.xml</jettyEnvXml>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<!-- 端口 -->
<port>${project.port}</port>
<maxIdleTime>60000</maxIdleTime>
</connector>
</connectors>
<!-- 按照官网上说的是配置停止容器的快捷键和端口,至今不知怎么在idea中如何使用,有知道的麻烦告知下,3Q -->
<stopKey>foo</stopKey>
<stopPort>8888</stopPort>
</configuration>
<executions>
<!-- 配置在maven哪个生命周期执行插件的哪个动作 -->
<execution>
<id>jetty_run</id>
<!-- maven生命周期 -->
<phase>compile</phase>
<!-- 执行插件的哪个动作 -->
<goals><goal>run</goal></goals>
</execution>
</executions>
<dependencies>
<!-- 这个插件依赖的几个包 -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-io</artifactId>
<version>7.6.6.v20120903</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>7.6.6.v20120903</version>
</dependency>
</dependencies>
</plugin>
jetty这个插件当时可是整的我头疼,各种报错各种上网找资料,附上jetty的配置文件:jetty.xml
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<New id="mysql" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>jdbc/core</Arg>
<Arg>
<New class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
<Set name="Url">jdbc:mysql://localhost:3306/message</Set>
<Set name="User">root</Set>
<Set name="Password">123456</Set>
</New>
</Arg>
</New>
</Configure>
cargo(可以启动tomcat,远程部署,本地部署,都支持的,这里我只用到本地部署,远程部署需要配置tomcat-user.xml和tomcat的控制台)
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.3</version>
<configuration>
<container>
<!-- tomcat的版本,tomcat6使用tomcat6x -->
<containerId>${cargo.tomcat.version}</containerId>
<!-- tomcat在本地的绝对路径 -->
<home>${tomcat.home}</home>
<!-- 本地安装就用installed,远程使用remote -->
<type>installed</type>
<!-- tomcat日志文件路径 -->
<output>${tomcat.home}/logs/container.log</output>
<append>false</append>
<log>${tomcat.home}/logs/cargo.log</log>
</container>
<configuration>
<!-- 本地部署,已存在 -->
<type>existing</type>
<!-- 再配置一次tomcat绝对路径 -->
<home>${tomcat.home}</home>
<properties>
<!-- 端口 -->
<cargo.servlet.port>${project.port}</cargo.servlet.port>
</properties>
</configuration>
<!-- 这里一次可以部署多个项目 -->
<deployables>
<!-- 指定我部署的项目GAV -->
<deployable>
<groupId>com.message</groupId>
<artifactId>message-test</artifactId>
<!-- war包形式部署 -->
<type>war</type>
<properties>
<!-- 容器中的上下文根 -->
<context>${project.contextPath}</context>
</properties>
</deployable>
</deployables>
</configuration>
<!-- 同jetty -->
<executions>
<execution>
<id>tomcat-run</id>
<phase>package</phase>
<goals><goal>run</goal></goals>
</execution>
</executions>
</plugin>
附上maven的properties
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>4.10</junit.version>
<spring.version>3.0.5.RELEASE</spring.version>
<jdk.version>jdk15</jdk.version>
<tomcat.version>6.0.32</tomcat.version>
<message.war.name>message</message.war.name>
<project.port>8099</project.port>
<project.contextPath>/core</project.contextPath>
<tomcat.home>F:\study\apache-tomcat-6.0.32</tomcat.home>
<cargo.tomcat.version>tomcat6x</cargo.tomcat.version>
</properties>