maven 安装
安装maven官网 http://maven.apache.org/download.cgi
下载
wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
配置maven环境变量
export MAVEN_HOME=/data/apache-maven-3.6.3export PATH=${MAVEN_HOME}/bin:${PATH}
配置maven本地仓库的位置
vim /data/apache-maven-3.3.9/settings.xml#设置本地仓库的位置<localRepository>/data/maven/repo</localRepository>
验证
mvn -vmvn clean
maven 项目模型
pom.xml 项目对象模型每一个项目都有一个pom.xml,Project Object Model,项目对象模型。用面向对象的思维还看这个文件,它就是一个项目。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。
所有的pom.xml都要配置三个最基本的东西,其它的不配都没关系。下面的配置只需要知道即可,因为工具会自动生成。
示例:
1234567<!-- 固定的头部信息,不要去改变 --><modelVersion>4.0.0</modelVersion><!-- 项目座标 --><groupId>com.mycompany.app</groupId><artifactId>my-app</artifactId><version>1.0-SNAPSHOT</version>
说明:
modelVersion: 永远的4.0.0,这个固定存在的。
groupId: 项目的项目组,就是把域名反 ...
maven 概念
概念maven 是用于项目构建 和 包管理的工具。maven 只对项目构建进行影响,但是不会对java编码、代码产生任何的影响。
maven有什么用
项目构建
包管理
maven属于工具,下载安装后也需要配置path。非常简单。而对maven的使用就是在使用maven的操作规范的情况下,用cmd输入maven命令即可。
使用maven必须在有网络的情况下,否则不可能成功。因为maven是自动去中央仓库中下载插件的,并把插件下到本地仓库中。
推荐书 《maven实战》
学习maven必须要有两个新概念要劳记:1.模块2.版本
大概摸到maven 命令的规律,maven的命令一般以模块或插件为基础比如
mvn eclipse:eclipse //生成eclipse 项目mvn assembly:singl -DdescriptorId=project //mvn 插件:插件模块 -D参数maven 的perperties 标签可以影响到作域,在.properties 文件中用${ }可以取到sitting.xml中的值,如果是pom中的p ...
设计模式-静态代理模式
静态代理三个角色静态代理的条件至少有三个角色
真实角色(RealObject)
代理角色(ProxyObject)
接口这三个(AbstractObject)
要求
真实角色与代理角色实现相同的接口。
代理类要持有真实角色的引用。重点:真实角色、代理角色、接口的关系。代理接口实际上是抽象出所有真实角色的共有方法。
用法1.创建真实角色2.创建代理角色3.代理角色.方法()。
注意:代理模式是要让代理类来使用委托类,所以是通过 new 代理类,在代理类中使用委托类,有点像回调函数的用法。
测试方法12345678910111213/** * 功能描述:测试 * @author liukai * @date 2015年11月13日 下午3:47:33 * @version 1.0 */public class Test { public static void main(String[] args) { ServiceImpl serviceImpl = new ServiceImpl(); IService iService = (IService) Pro ...
shell 变量
shell 变量shell 是解释型的语言,类似的有python。shell 是没有类型的,分局部变量 和 环境变量
局部变量,只在创建shell 的脚本中命名用,其他shell不能访问
环境变量,在当前用户或系统环境中生效
转义字符在 " " 中是起做用的bash 只支持 整数 和 字符串,不支持浮点数,如果要使用浮点数,需要借助 bc。
定义和引用变量12345678#!/bin/sh# 声明变量时,不要出现空格A=123456B='TEST'# 使用一个变量使用 $变量名echo $A
定义变量时,变量名不加$,而在使用变量时,需要加$,格式:$test_var
注意事项变量名和等号之间不能有空格,切记很多时候问题就是出在这里。
变量名的命名须遵循如下规则:
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
中间不能有空格,可以使用下划线 _。
不能使用标点符号。
不能使用bash里的关键字(可用help命令查看保留关键字)。
使用变量声明变量后,要需要将变量输出,输出变量需要使用 echo $变量名。
1234567 ...
shell 编写Hello World
简述Shell 是一个用 C 写的程序,用于和内核做交互。是一种命令式的语言。解释执行。Shell 和 Shell脚本是两个概念。一般 shell 是指 Shell Script 即 Shell 脚本。
Shell 可以理解成命令的集合,即把命令集合在一个文件,就是脚本,称shell脚本。Bash Shell 最常用echo $BASH 查看当前的 Shell
控制台命令行就是一个 shell。脚本就是一个命令行的集合,和在控制台输入的效果是一样的。但是脚本可以保存这些命令,提升率效。linux 的文件不需要后缀,所以 .sh 可有可无。
Hello World创建一个测试文件 test.sh 然后执行 sh test.sh
12#!/bin/bashecho "Hello World !"
输出结果:
Hello World
你会现,这里我并没有 chmod o+x test.sh 也能执行,网上很多文章说需要先修改执行权,这个后面说明。
Shell1.作为解释器参数
#!必须加这个头!!!!,则文件会以shell脚本形式执行
1#!/bin/bash
使 ...
RocketMQ-启动Nameserver
Nameserver启动 nameserver指定输出日志位置,未指定则目志在当前目录下:
1nohup sh mqnamesrv > ~/logs/rocketmqlogs/namesrv.log 2>&1 &
//ubuntu 下加 sudo 反而报错。最简单的命令:nohup sh mqnamesrv &
内存不足处理:nameserver 内存不足时修改 runserver.sh,测试管用JAVA_OPT="${JAVA_iOPT} -server -Xms512m -Xmx512m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=256m"
验证启动成功
jobs 或 jps //查看启动情况NamesrvStartup //nameserver 启动BrokerStartup //broker 启动nohup.out //未指定日志文件输出位置,则生成到执行 nohup 的当前目录下
eclipse+tomcat的问题能启动,但量不能访问
今天还发现了一种情况tomcat起不来,配置是默认的,就是下面两张图的第一张图的配置。但是就是起不来,原因是web.xml配置有问题也会出现这种情况。
如果,按钮是灰的不能选择,那就把包含的项目先删掉,再clean一下就可以。
原来的解决方法:tomcat启动了但是却访问不了是因为:改成以下即可:
算法 学习算法很简单
前言很多非科班和科班的朋友看到算法就头疼,因为这东西学起来困难,也不常用,唯二的两个做用,面试和装B,一个能赚钱,一个能爽,但是学习路线太过陡峭,不是不想学,而是感觉入地无门。其实凡事都有技巧,难是因为不够了解它,就好像追不到女孩子其实不是你不够好,而是你不够了解对方。当然,开篇严肃一些,后面会慢慢把一些不容易理解的,化繁为简,包教包会,不会不退学费,本来也没人给我钱^.^。
首先我先说明我对学习的观点,学习一项技能,没有聪明之分,只有用不用心。如果在自己没有达到可以称之为努力的程序,千万不要跟自己谈天赋,自己学没有达到能谈天赋的地步。如果实在学不下去,不要骗自己,你就是抗拒学习这件事,而不是学不会。
如果算法还没有到了让你非学不可,也不要骗自己,是浪费时间。还不如去玩游戏、陪女朋友。但是如果现在非常迫切,已经到了非学不可,比如考试、面试,那就逼自己一把,不要轻易放弃自己。
一、数据结构和算法数据结构是计算机存储、组织数据的方式。数据结构往往同高效的检索算法和索引技术有关。
数据结构在计算机科学界至今没有标准的定义。通常:"数据结构是数据对象,以及存在于该对象的实例合组成实例 ...
List分组
对一个 List 里面相同属性的内容进行分类,如:对相同部门的员工进行分类。思路是使可以区分类型的属性进行分类,以部门类型为例。
1234567891011121314151617List<Devloper> devlopers = new ArrayList<>();devlopers.add(new Devloper(1, "嗯哼", 1));devlopers.add(new Devloper(2, "啊哈", 1));devlopers.add(new Devloper(3, "哦吼", 1));devlopers.add(new Devloper(4, "呃呵", 2));devlopers.add(new Devloper(5, "呜唿", 2));Map<Integer, List<Devloper>> devloperMap = new HashMap<>();for (Devloper devloper: de ...