Skip to content
This repository has been archived by the owner on Mar 14, 2019. It is now read-only.

DevGuideCN

xumingming edited this page Jun 21, 2012 · 17 revisions

获取源码

  1. Fork我的源码库
  2. Fork 成功后, 从自己的库中克隆都本地(注意替换$yourname), git clone https://github.com/$yourname/HouseMD.git housemd

目录结构

  • src 源代码目录(含单元测试代码)
  • acceptance-test 验收测试代码目录
  • bin 安装和运行脚本目录
  • project SBT构建脚本和插件配置目录
  • sbt SBT启动脚本

使用SBT

执行./sbt, 进入SBT命令行.

注意, 第一次执行./sbt, 此脚本会自动下载SBT, 并启动它. 此后有一段较长时间的初始化, 以及下载依赖包的过程, 期间可能会因为GFW原因导致一些依赖无法下载, 请在sbt脚本文件中配置HTTP代理.

下面的命令全部是在进入SBT命令行之后执行的:

> compile

编译源码

> test

执行测试用例

> assembly

打包

更多SBT的使用请细看官方文档

准备开发环境

HouseMD使用主要编程语言是ScalaJava, 下面是常用IDE准备说明, 若你喜欢的工具不在此列, 我表示很遗憾, 请咨询Google: scala $your_favorite_ide_or_editor

IntelliJ IDEA (推荐首选)

  1. 下载IDEA的社区版(免费)
  2. 启动IDEA, 选择菜单File -> Settings -> Plugins 中搜索并安装Scala插件
  3. SBT的命令行下, 执行gen-idea, 便会生成IDEA的项目文件
  4. IDEA中, 选择菜单File -> Open Project 打开项目, 马上开始为HouseMD贡献你的智慧吧:)
  1. 不多废话, 请参考官方文档安装配置
  2. SBT的命令行下, 执行eclipse, 便会生成Eclipse的项目文件
  3. Eclipse中打开项目, 马上开始为HouseMD贡献你的智慧吧:)

注意, 有可能打开项目后你发现.java的文件会有编译错误提示, 也许Scala-IDE目前对Scala project中混合有.java文件的支持不是很好, 这个是可以忽略的, 因为只需要用SBT进行编译构建就可以了.

如果你知道怎么解决请邮件告诉我, 谢谢

贡献什么

原则上, 只要是对HouseMD有帮助的都可以, 例如但不限于:

  • 解决已有的Issue
  • 提交新的Issue, 功能特性, 改进, 缺陷都可以
  • 新增或修订Wiki
  • 分享HouseMD的使用和开发经验技巧, 记得邮件告诉我链接, 我会放到Wiki Home让更多人知道

提交贡献

提交你的贡献之前, 请做到下面几点小小的要求:

  1. 提交中必须含有相应的单元测试代码, 单元测试代码应能清晰的说明且验证你提供了哪些特性上的变化
  • 强烈建议参考HouseMD已有的测试用例, 采用FunSpec风格能够更容易的清晰表达其意图.
  1. 提交之前, 请确保单元测试全部通过

在你的代码提交到你的github上(获取源代码时Fork产生的库)后, 请点击Pull Request向我发起请求, 并在提交的表单中清晰描述你的提交目的和变化要点, Github会自动邮件通知我, 随后我会第一时间处理. 更多操作帮助请见Using Pull Request.

扩展指令的建议

没有比新增一些更酷的指令, 更让人兴奋的啦~

用Scala编写

请参考代码:

  1. loaded
  2. trace

用Java编写

请参考代码:

  1. env
  2. inspect

新增的指令需在House55行中增加一下, 现在方式有点土, 欢迎高手来改进.

更多相关疑问请提交Issue, 我们一起来讨论:)

参考资料

  1. BTrace
  2. javaagent
  3. 动态跟踪Java
Clone this wiki locally