02 2015 档案

摘要:1 面向对象 1) 面向对象的特征有哪些 i) 抽象 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 ii)继承 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这... 阅读全文
posted @ 2015-02-28 20:37 风过无痕的博客 阅读(1052) 评论(0) 推荐(1) 编辑
摘要:1 初识LVS:Linux Virtual Server 1.1 LVS是什么 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org。现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持L... 阅读全文
posted @ 2015-02-28 15:37 风过无痕的博客 阅读(20083) 评论(8) 推荐(2) 编辑
摘要:用mina框架传输对象,对于开发者来说,直接传输对象,而不用自己编写相应的报文转换代码,将大大节省 开发时间。 即使用对象编码解码器 使用ObjectSerializationCodecFactory 服务端 MinaServer.java代码如下 package com.bypay.mina.server; import java.io.IOException; import... 阅读全文
posted @ 2015-02-22 16:06 风过无痕的博客 阅读(2074) 评论(0) 推荐(2) 编辑
摘要:我们先看一个最简单的Mina Server服务端代码,该段代码实现了服务端Server启动并监听客户端请求package com.bypay.mina.server;import java.io.IOException;import java.net.InetSocketAddress;import... 阅读全文
posted @ 2015-02-22 15:46 风过无痕的博客 阅读(4020) 评论(0) 推荐(0) 编辑
摘要:简单的Mina客户端代码MinaSimpleClient.java: package com.bypay.mina.client; import java.net.InetSocketAddress; import java.nio.charset.Charset; import org.apache.mina.core.future.ConnectFuture; import org.... 阅读全文
posted @ 2015-02-22 14:44 风过无痕的博客 阅读(2990) 评论(0) 推荐(0) 编辑
摘要:Handler的基本作用,处理接收到的客户端信息 一个简单的Handler实现如下: package com.bypay.mina.handler; import java.util.Date; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.core.service.IoHandlerAda... 阅读全文
posted @ 2015-02-22 14:27 风过无痕的博客 阅读(1165) 评论(0) 推荐(0) 编辑
摘要:目录1. NioSocketAcceptor初始化源码研究1.1 类图1.2 方法调用时序图1.3 初始化NioSocketAcceptor1.4 SimpleIoProcessorPool初始化分析1.5 NioProcessor的源码1.6 总结2. NioSocketAcceptor bind... 阅读全文
posted @ 2015-02-22 11:14 风过无痕的博客 阅读(1783) 评论(1) 推荐(2) 编辑
摘要:RAID(廉价磁盘冗余阵列)技术主要是为了改善磁盘的访问延迟,增强磁盘的可用性和容错能力。目前服务器级别的计算机都支持插入多块磁盘(8块或者更多),通过使用RAID技术,实现数据在多块磁盘上的并发读写和数据备份。 RAID0 数据在从内存缓冲区写入磁盘时,根据磁盘数量将数据分成N份,这些数据同时并发写入N块磁盘,使得数据整体写入速度是一块磁盘的N倍。读取时也一样,因此RAID0... 阅读全文
posted @ 2015-02-21 23:00 风过无痕的博客 阅读(1735) 评论(0) 推荐(1) 编辑
摘要:1 定义 bin-log日志记录了所有的DDL和DML的语句,但不包括查询的语句,语句以事件的方式保存,描述了数据的更改过程,此日志对发生灾难时数据恢复起到了极为重要的作用。 2 开启 mysql默认是没有开发bin-log日志,首先我们需要开启bin-log日志,在my.cnf中修改 [mysqld] log_bin = mysql-bin datadir=/var/lib/mysq... 阅读全文
posted @ 2015-02-17 11:04 风过无痕的博客 阅读(392) 评论(0) 推荐(0) 编辑
摘要:1. 准备工作 首先要准备2台机器,分别安装mysql 我这里的版本是5.1.73,mysql数据库安装请参考:http://www.cnblogs.com/tangyanbo/p/4289753.html linux系统为centos 机器分别为: Master: 192.168.1.227 Slave:192.168.1.225 场景:master和slave都是刚创建的数据库,... 阅读全文
posted @ 2015-02-13 18:16 风过无痕的博客 阅读(425) 评论(0) 推荐(0) 编辑
摘要:1 复制概述 1.1、复制解决的问题 数据复制技术有以下一些特点: (1) 数据分布 (2) 负载平衡(load balancing) (3) 备份 (4) 高可用性(high availability)和容错 1.2、复制如何工作 从高层来看,复制分成三步: (1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary... 阅读全文
posted @ 2015-02-13 14:46 风过无痕的博客 阅读(417) 评论(0) 推荐(0) 编辑
摘要:1. 创建存储过程 1.1 无参数存储过程 CREATE PROCEDURE bruce_procedure () BEGIN --1.声明变量 --2.执行业务逻辑 END 1.2 有参数的存储过程 CREATE PROCEDURE bruce_procedure ( IN in_exam_id INT, in_student_types_id VARCHAR ... 阅读全文
posted @ 2015-02-13 11:34 风过无痕的博客 阅读(289) 评论(0) 推荐(0) 编辑
摘要:1. 数据库查看数据库show databases;使用数据库use [数据库名]如:use mysql创建数据库CREATE DATABASE bruce DEFAULT CHARACTER SET utf8删除数据库drop database bruce查询mysql版本select versi... 阅读全文
posted @ 2015-02-13 11:34 风过无痕的博客 阅读(490) 评论(0) 推荐(0) 编辑
摘要:1 安装 环境 CentOS yum install -y mysql-server mysql mysql-deve service启动 1.1 启动 service mysqld start 1.2 重启 service mysqld restart 1.3 停止 service mysqld stop 1.4 通过进程启动和关闭 查看进程 ps aux |grep m... 阅读全文
posted @ 2015-02-13 10:14 风过无痕的博客 阅读(1138) 评论(0) 推荐(0) 编辑
摘要:编码基础知识 ISO-8859-1 ISO-8859-1 的较低部分(从 1 到 127 之间的代码)。ISO-8859-1 的较高部分(从 160 到 255 之间的代码)。因此只能表示一些数字,英文字母和西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号单字节,即一个字节对应一个编码,不能 阅读全文
posted @ 2015-02-12 10:34 风过无痕的博客 阅读(761) 评论(0) 推荐(2) 编辑
摘要:1 vi编辑器 2 文件操作 2.1 删除文件 2.2 查看文件 2.3 创建文件夹 2.4 查看文件权限 2.5 复制文件 2.6 移动 2.7 查找文件 3 查看cpu信息 4 进程管理 5 查看日志 6 压缩与... 阅读全文
posted @ 2015-02-10 16:51 风过无痕的博客 阅读(1018) 评论(1) 推荐(1) 编辑
摘要:Maven实战(一)安装与配置Maven实战(二)构建简单Maven项目Maven实战(三)Eclipse构建Maven项目Maven实战(四)生命周期Maven实战(五)坐标详解Maven实战(六)依赖Maven实战(七)settings.xml相关配置Maven实战(八)pom.xml简介Mav... 阅读全文
posted @ 2015-02-10 14:38 风过无痕的博客 阅读(436) 评论(0) 推荐(0) 编辑
摘要:API参考: http://www.andykhan.com/jexcelapi/index.html 官网: http://jexcelapi.sourceforge.net/ 1. 创建可写的工作簿workbook WritableWorkbook workbook = Workbook.createWorkbook(new File("c:\test.xls")); ... 阅读全文
posted @ 2015-02-10 14:15 风过无痕的博客 阅读(867) 评论(0) 推荐(0) 编辑
摘要:1. 配置在控制台显示日志信息 stdout log4j.rootLogger=info,stdout,logfile log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdo... 阅读全文
posted @ 2015-02-10 12:23 风过无痕的博客 阅读(211) 评论(0) 推荐(0) 编辑
摘要:1 在spring-servlet.xml中进行如下配置 说明: * path 为被拦截的controller请求的url,可以配置多个 * bean class 为自定义的Interceptor * 拦截器可以配... 阅读全文
posted @ 2015-02-10 12:18 风过无痕的博客 阅读(343) 评论(0) 推荐(0) 编辑
摘要:1. BeanFactory 的结构体系如下: 2. XmlBeanFactory ,装载Spring配置信息 package org.springframework.beans.factory.xml; import org.springframework.beans.BeansException; import org.springframework.beans.factory... 阅读全文
posted @ 2015-02-10 12:14 风过无痕的博客 阅读(297) 评论(0) 推荐(0) 编辑
摘要:事务控制流程 例如对如下代码进行事务控制 class service1{ method1(){ method2(); } } class service2{ method2(); } 原理:建立一个method interceptor 拦截service的方法,在方法开始前begin事务,方法结束后commit事务 对... 阅读全文
posted @ 2015-02-10 12:12 风过无痕的博客 阅读(1177) 评论(0) 推荐(0) 编辑
摘要:场景: 1)系统有多个数据库 2)且数据库类型也不尽相同 3)现在应用根据某些条件路由到具体的数据库 4)且在spring+hibernate框架下,支持依赖注入 已有实现,spring动态数据源,但无法实现动态SessionFactory,即不通数据库的方言不一样 目标: 在spring动态数据源的基础上,实现动态SessionFactory 1.配置多个数据源和SessionF... 阅读全文
posted @ 2015-02-10 12:00 风过无痕的博客 阅读(2621) 评论(2) 推荐(0) 编辑
摘要:在servlet的配置当中,1的含义是: 标记容器是否在启动的时候就加载这个servlet。 当值为0或者大于0时,表示容器在应用启动时就加载这个servlet; 当是一个负数时或者没有指定时,则指示容器在该servlet被请求调用时才加载。 正数的值越小,启动该servlet的优... 阅读全文
posted @ 2015-02-10 11:52 风过无痕的博客 阅读(602) 评论(0) 推荐(0) 编辑
摘要:1. 定义ParameterRequestWrapper 继承HttpServletRequestWrapperpublic class ParameterRequestWrapper extends HttpServletRequestWrapper { private Map params... 阅读全文
posted @ 2015-02-10 11:50 风过无痕的博客 阅读(490) 评论(0) 推荐(0) 编辑
摘要:404 /home.do 阅读全文
posted @ 2015-02-10 11:48 风过无痕的博客 阅读(2037) 评论(0) 推荐(0) 编辑
摘要:Daemon Thread ["http-bio-8080"-exec-2] (Suspended (exception RuntimeException)) ThreadPoolExecutor$Worker.run() line: 912 TaskThread(Thread).run() line: 619 Preferences -> java -> de... 阅读全文
posted @ 2015-02-10 11:47 风过无痕的博客 阅读(1383) 评论(0) 推荐(0) 编辑
摘要:window->preferences->validation 可以取消部分文件的验证,取消build时验证,改为手动验证,提高效率。 阅读全文
posted @ 2015-02-10 11:46 风过无痕的博客 阅读(652) 评论(0) 推荐(0) 编辑
摘要:1. M2e maven2插件安装 参考地址:http://www.sonatype.com/books/m2eclipse-book/reference/install-sect-marketplace.html 2. Subversion 插件Subclipse安装 Help->Install New Solftware: Links for 1.8.x Release: C... 阅读全文
posted @ 2015-02-10 11:45 风过无痕的博客 阅读(190) 评论(0) 推荐(0) 编辑
摘要:注意点: 1. file必须在/下,或者/WEB-INF/,不能在classes下 2. weblogic中进行如下配置,以获取绝对路径: true 阅读全文
posted @ 2015-02-10 11:43 风过无痕的博客 阅读(1488) 评论(0) 推荐(0) 编辑
摘要:在WEB-INF/weblogic.xml中进行如下配置: true 阅读全文
posted @ 2015-02-10 11:42 风过无痕的博客 阅读(2134) 评论(0) 推荐(0) 编辑
摘要:Oracle 创建数据库图文分解: 1. 选择所有程序->Oracle-OraDb11g_home1->Configuration and Migration Tools -> Database Configuration Assistant, 如下图所示: 2. 步骤1完成后出现如下图所示,点击一下步。 3. 如下图,选择create a Database,点击 一下步 4... 阅读全文
posted @ 2015-02-10 11:41 风过无痕的博客 阅读(1538) 评论(0) 推荐(0) 编辑
摘要:1. 运用BufferedInputStream 读取文件流和BufferedOutputStream写文件流: protected static void writeFile2(String inputPath, String outputPath) { BufferedInputStream bis = null; BufferedOutputStrea... 阅读全文
posted @ 2015-02-10 11:39 风过无痕的博客 阅读(260) 评论(0) 推荐(2) 编辑
摘要:一 文件放在classpath下面 1. 直接获取InputStream InputStream inputStream = Thread.currentThread() .getContextClassLoader().getResourceAsStream("user_table.xml"); 2. 获取resource和path UR... 阅读全文
posted @ 2015-02-10 11:29 风过无痕的博客 阅读(865) 评论(0) 推荐(0) 编辑
摘要:安装 EclEmma 插件的过程和大部分 Eclipse 插件相同,我们既可以通过 Eclipse 标准的 Update 机制来远程安装 EclEmma 插件(图 1),也可以从站点(参阅参考资源)下载 zip 文件并解压到 eclipse 所在的目录中。 EclEmma - http://update.eclemma.org 图 1 添加 EclEmma 更新站点 不管采用... 阅读全文
posted @ 2015-02-10 11:27 风过无痕的博客 阅读(906) 评论(0) 推荐(0) 编辑
摘要:【链表】 是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。 由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多, 但是查找一个节点或者访问特定编号的节点则需要O(n)的时间, 而顺序表相... 阅读全文
posted @ 2015-02-09 20:30 风过无痕的博客 阅读(409) 评论(0) 推荐(0) 编辑
摘要:是限定仅在表尾进行插入或删除操作的线性表 表尾称为栈顶,表头称为栈底 特点:后进先出 操作: 1.推入push 2.弹出pop 栈的数组实现: public class ArrayStack { private List list = new ArrayList(); public boolean isEmpty(... 阅读全文
posted @ 2015-02-09 20:26 风过无痕的博客 阅读(182) 评论(0) 推荐(0) 编辑
摘要:它是用一个散列函数把关键字 映射到散列表中的特定位置。 在理想情况下,如果元素e 的关键字为k,散列函 数为f,那么e 在散列表中的位置为f (k)。要搜索关键字为k 的元素,首先要计算出f (k),然后看 表中f (k)处是否有元素。如果有,便找到了该元素。如果没有,说明该字典中不包含该元素... 阅读全文
posted @ 2015-02-09 20:23 风过无痕的博客 阅读(219) 评论(0) 推荐(0) 编辑
摘要:快速排序使用分治法策略来把一个序列分为两个子序列 算法步骤: 1. 从数列中挑出一个元素,称为 "基准"(pivot) 2. 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面 (相同的数可以到任一边)。在这个分割结束之后,该基准就处于数列的中间位置。这个称为分割(partition)操作 3. 递归地(recursive)把小于基准值元素的... 阅读全文
posted @ 2015-02-09 20:21 风过无痕的博客 阅读(207) 评论(0) 推荐(0) 编辑
摘要:算法步骤: 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 public static void bubbleSort(... 阅读全文
posted @ 2015-02-09 20:16 风过无痕的博客 阅读(178) 评论(0) 推荐(0) 编辑
摘要:算法步骤: 1. 未排序序列中找到最小元素,存放到排序序列的起始位置 2. 再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾 3. 以此类推,直到所有元素均排序完毕 比较复杂度:n(n-1)/2 交换(赋值)复杂度:n-1 优点:相比冒泡排序来讲,交换的次数减少了 缺点:相对快速排序,比较次数仍然是n² public static void... 阅读全文
posted @ 2015-02-09 20:12 风过无痕的博客 阅读(176) 评论(0) 推荐(0) 编辑
摘要:合并算法,指的是将两个已经排序的序列合并成一个序列的操作 操作步骤: 1. 建立一个数组C用来存放合并后的数 2. 从数组A和数组B的首端开始比较,将大的元素放入C中 3. 重复2操作,直至其中一个数组的元素被用完,则将另一个数组中剩余的元素拷贝到C中 比较复杂度:n㏒n 交换(赋值)复杂度:n㏒n 优点:比较快速的排序算法 缺点:需要额外的空间存放临... 阅读全文
posted @ 2015-02-09 20:08 风过无痕的博客 阅读(217) 评论(0) 推荐(0) 编辑
摘要:算法步骤: 1.从第一个元素开始,该元素可以认为已经被排序 2.取出下一个元素a,在已经排序的元素序列中从后向前扫描 3.如果已排序中的元素b大于a,则将元素b后移一个位置 4.重复步骤3,直到找到已排序的元素x小于或者等于元素a 5.将元素a插入到x的后面 6.重复步骤2~5 public static void insertionSort(Intege... 阅读全文
posted @ 2015-02-09 20:06 风过无痕的博客 阅读(209) 评论(0) 推荐(0) 编辑
摘要:上一节我们讲到了如何用散列和链表实现HashMap,其中有一个疑问今天已经有些答案了,为什么要用链表而不是数组链表的作用有如下两点好处1. remove操作时效率高,只维护指针的变化即可,无需进行移位操作2. 重新散列时,原来散落在同一个槽中的元素可能会被散落在不同的地方,对于数组需要进行移位操作,... 阅读全文
posted @ 2015-02-09 20:03 风过无痕的博客 阅读(307) 评论(0) 推荐(0) 编辑
摘要:上一节中实现的SimpleHashMap,没有解决冲突的问题,这一节我们继续深入由于table的大小是有限的,而key的集合范围是无限大的,所以寄希望于hashcode散落,肯定会出现多个key散落在同一个数组下标下面,因此我们要引入另外一个概念,将key和value同时存入table[index]... 阅读全文
posted @ 2015-02-09 20:01 风过无痕的博客 阅读(259) 评论(0) 推荐(0) 编辑
摘要:最近闲的很,想和大家一起学习并讨论下Java的一些源代码以及其实现的数据结构,不是什么高水平的东西,有兴趣的随便看看1. 为什么要用Map,以HashMap为例 很多时候我们有这样的需求,我们需要将数据成键值对的方式存储起来,根据key来获取value(value可以是简单值,也可以是自定义对象) ... 阅读全文
posted @ 2015-02-09 19:48 风过无痕的博客 阅读(469) 评论(0) 推荐(0) 编辑
摘要:1.软件安装 1.1下载和安装apache Apache 2.2 :http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl版本 1.2下载和安装tomcat7.0.37(略) 2.Apache 配置 2.1启动自动加载代理模块 打开conf/httpd.conf去掉以下文本前的注释符(#)以便让Apache在启动时自动加载代理(p... 阅读全文
posted @ 2015-02-09 18:48 风过无痕的博客 阅读(1317) 评论(0) 推荐(1) 编辑
摘要:前面写了一篇关于动态切换Hibernate SessionFactory的文章发现存在一些问题: 需要配置多个HibernateTransactionManager和多个Spring 切面 这样带来两个问题 1. 程序效率降低,因为Spring进行多次Advice的拦截 2.... 阅读全文
posted @ 2015-02-09 18:43 风过无痕的博客 阅读(624) 评论(0) 推荐(0) 编辑
摘要:目录一、简介Nexus是Maven仓库管理器,用来搭建一个本地仓库服务器,这样做的好处是便于管理,节省网络资源,速度快,还有一个非常有用的功能就是可以通过项目的SNAPSHOT版本管理,来进行模块间的高效依赖开发一、为什么要用Nexus虽然可以通过中央仓库来获取我们所需要的jar包,但是现实往往是存... 阅读全文
posted @ 2015-02-09 18:18 风过无痕的博客 阅读(1555) 评论(0) 推荐(0) 编辑
摘要:目录一、作用Maven仓库分为本地仓库和远程仓库,集中存放项目引用的jar包,无需将jar包放在程序中,结合Maven项目的pom.xml,使得项目管理jar包更容易,有以下几个优点:对于项目来说,无需关心jar包存储问题,只管理好配置即可易于搜索和使用jar包,不需要到网上到处找,仓库提供了几乎所... 阅读全文
posted @ 2015-02-09 18:02 风过无痕的博客 阅读(854) 评论(0) 推荐(0) 编辑
摘要:目录pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件、开发者需要遵循的规则、缺陷管理系统、组织和licenses、项目的url、项目的依赖性以及其他所有的项目相关因素。下面是我在项目中应用的一个pom.xml,仅供参考更多细节内容将在后面的... 阅读全文
posted @ 2015-02-09 17:45 风过无痕的博客 阅读(719) 评论(0) 推荐(0) 编辑
摘要:目录一、简介settings.xml对于maven来说相当于全局性的配置,用于所有的项目,当Maven运行过程中的各种配置,例如pom.xml,不想绑定到一个固定的project或者要分配给用户时,我们使用settings.xml中的settings元素来确定这些配置。这包含了本地仓库位置,远程仓库... 阅读全文
posted @ 2015-02-09 17:39 风过无痕的博客 阅读(469) 评论(0) 推荐(0) 编辑
摘要:目录我们项目中用到的jar包可以通过依赖的方式引入,构建项目的时候从Maven仓库下载即可。1. 依赖配置 依赖可以声明如下: ... group-a artifact-a 1.0 group-c ... 阅读全文
posted @ 2015-02-09 17:30 风过无痕的博客 阅读(546) 评论(0) 推荐(0) 编辑
摘要:目录1.为什么要定义Maven坐标 在我们开发Maven项目的时候,需要为其定义适当的坐标,这是Maven强制要求的。在这个基础上,其他Maven项目才能应用该项目生成的构件。 2.Maven坐标详解 Maven坐标为各种构件引入了秩序,任何一个构件都必须明确定义自己的坐标,而一组Mave... 阅读全文
posted @ 2015-02-09 16:21 风过无痕的博客 阅读(460) 评论(0) 推荐(0) 编辑
摘要:目录1. 三套生命周期 Maven拥有三套相互独立的生命周期,它们分别为clean,default和site。 每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,用户和Maven最直接的交互方式就是调用这些生命周期阶段。 以clean生命周期为例,它包含... 阅读全文
posted @ 2015-02-09 16:17 风过无痕的博客 阅读(317) 评论(0) 推荐(0) 编辑
摘要:目录1. 安装m2eclipse插件 要用Eclipse构建Maven项目,我们需要先安装meeclipse插件 点击eclipse菜单栏Help->Eclipse Marketplace搜索到插件Maven Integration for Eclipse 并点击安装即可,如下图:安装成... 阅读全文
posted @ 2015-02-09 16:11 风过无痕的博客 阅读(662) 评论(0) 推荐(0) 编辑
摘要:目录上一节讲了maven的安装和配置,这一节我们来学习一下创建一个简单的Maven项目1. 用Maven 命令创建一个简单的Maven项目在cmd中运行如下命令:mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-ap... 阅读全文
posted @ 2015-02-09 16:05 风过无痕的博客 阅读(568) 评论(0) 推荐(0) 编辑
摘要:目录 1. 简介 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 如果你已经有十次输入同样的Ant targets来编译你的代码、jar或者war、生成javadocs,你一定会自问,是否有一个重复性更少却能同样完成该工作的方 法。 Maven便提供了这样一种选择,将你的注意力从作业层转移到项目管理层。Mav... 阅读全文
posted @ 2015-02-09 15:58 风过无痕的博客 阅读(466) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示