Maven预设变量
使用过Maven的人应该都知道,我们在Maven项目中添加依赖的一般性做法。就是打开pom.xml文件,在节点下添加
xml
org.apache.lucene
lucene-core
5.5.0
包含坐标和版本号的内容,那么在Java类文件中,就可以引用Lucene包中的各种类了。但是要注意一点,这里面的版本号是以硬编码的形式存在,作为一个合格的软件开发者,要尽量在你的代码中避免硬编码的情况。为什么呢?比如我需要依赖其它的Lucene模块,那么pom.xml中添加内容如下:
xml
org.apache.lucene
lucene-analyzers-commo
继续阅读 »
在记MAC OS X 编译安装PHP7.0.16 中遇到的异常情况一文中,介绍了编译PHP7源码安装PHP的方式,其中的第四个步骤,命令如下:
继续阅读 »
说明
类别名可以随便取。
类别是一个类,它是添加了新功能的现有类。
使用类别就是为了能够为现有类添加新的方法,不用继承该现有类,就可使用现有类的对象调用添加的方法了。
类别可以使类的实现分散在多个文件中。
类别中不能有变量,类别中没有放变量的位置。
如果类中的方法和类别中的方法名称相同,这将造成冲突,类别的方法将完全取代类的方法。
同一个类的不同类别声明了相同的方法,这将导致不稳定,哪个方法会被调用是不确定的。
不建议在类别中覆盖类中的方法,因为在类别中的方法不能调用superClass的方法(因为没有元数据支持)。
类别方法不能覆盖于同一个类的其它类别中的方法。因为无法预知他们的加载优先顺序,就可能在编译时出错。
对类库的类别方
继续阅读 »
本篇是纯粹的技术贴,废话不多说。
OpenStack Version: Juno stable 2014.2
消息处理
这里说的消息处理,不光指处理消息请求,也处理消息响应。Nova中对消息的过滤配置,都在api-paste.ini中:
图中如keystone一行中,就定义了消息处理的不同的filter,比如compute_req_id就是给收到的每条消息定义一个id号,标识消息的整个处理流程,也便于错误定位;再比如ratelimit限制了某个用户对某个资源操作的频率,防止对系统的恶意攻击;如果你要增加对消息的处理环节,很简单,找到比如compute_req_id这个filter的处理代码(也多看看其他filter),
继续阅读 »
import的主要用于导入xmake的扩展类库以及一些自定义的类库模块,一般用于 自定义脚本(on_build, on_run ..)、插件开发、模板开发、平台扩展、自定义任务task等地方。
导入机制如下:
优先从当前脚本目录下导入
再从扩展类库中导入
导入的语法规则:
基于.的类库路径规则,例如:
导入core核心扩展模块
```lua
import("core.base.option")
import("core.project")
import("core.project.task")
import("core")
function main()
-- 获取参数选项
继续阅读 »
本文主要介绍下xmake的整体架构设计,以及源码结构的布局和模块划分。
如果你想深度使用xmake,开发xmake插件、工程自定义脚本或者想为xmake贡献一些代码和特性,可以通过此本的介绍,对xmake项目整体有个大概的了解。,
源码地址:Github
顶层目录结构
bash
./xmake/
├── actions # 内建的一些基础task,用于基本的构建安装等操作
├── core # xmake的核心模块,提供最底层的实现支持
├── languages # 所有的语言相关特性支持和扩展,都在此目录下
├── modules # 内置的扩展模块,可用`import`导入使用
├── pack
继续阅读 »
Java学习笔记-Object类
Note:参阅书籍《Core Java,Volume I:Fundamentals》
Object类的说明
Object类是Java中所有类的最终祖先,在Java中每个类都是由它扩展而来;
如果没有明确的指出超类,Object就被认为是这个类的超类。class A extends Object是不必要的;
可以使用Object类型的变量引用任何类型的对象,Object obj = new A();
在Java中,只有基本类型(primitive types)不是对象,例如:数值、字符和布尔类型的值都不是对象。所有的数组类型,不管是对象数组还是基本类型的数组都扩展于Object类。
继续阅读 »
本文主要讲AutoScaling,关于CloudFormation和Heat,之前的博客已经有讲过,本文不做赘述。
AutoScaling in AWS
AutoScaling的概念最早出现在AWS,Auto Scaling 是一项 Web 服务,旨在根据用户定义的策略、时间表和运行状况检查启动或终止 EC2 实例。在典型的商业场景中,在 Web 应用程序开始获得更多流量时,您将添加更多的服务器或增加现有服务器的大小来应对额外负载。同样,当 Web 应用程序的流量开始减少时,您将终止未充分利用的服务器,或者减少现有服务器的大小。根据您的基础设施,每次进行垂直扩展时可能都会涉及更改服务器配置。如果使用水平扩展,您仅需根据应用程序的
继续阅读 »
源码
更新内容
此版本重构了90%的代码
新特性
增加task任务机制,可运行自定义任务脚本
实现plugin扩展机制,可以很方便扩展实现自定义插件,目前已实现的一些内置插件
增加project文件导出插件(目前已支持makefile的生成,后续会支持:vs, xcode等工程的生成)
增加hello xmake插件(插件demo)
增加doxygen文档生成插件
增加自定义宏脚本插件(支持动态宏记录、宏回放、匿名宏、批量导入、导出等功能)
增加更多的类库用于插件化开发
实现异常捕获机制,简化上层调用逻辑
增加多个option进行宏绑定,实现配置一个参数,就可以同时对多个配置进行生效
增加显示全局构建进度
继续阅读 »
此版本带来了大量新特性更新,具体详见:xmake v2.1.5版本新特性介绍。
更多使用说明,请阅读:文档手册。
项目源码:Github, Gitee.
新特性
#83: 添加 add_csnippet,add_cxxsnippet到option来检测一些编译器特性
#83: 添加用户扩展模块去探测程序,库文件以及其他主机环境
添加find_program, find_file, find_library, find_tool和find_package 等模块接口
添加net.*和devel.*扩展模块
添加val()接口去获取内置变量,例如:val("host"), val("env PATH"), val("shell
继续阅读 »