虚拟化平台cloudstack(6)——使用maven:jetty调试
调试环境
ubuntu 12.04
JDK1.7
apache-maven-3.10
eclipse 4.2 Juno
mysql 5
apache ant
JDK的配置和安装
安装可以参考:
http://my.oschina.net/jamesju/blog/94916
我是安装在~//java/jdk1.7.0_21下,执行java -version可以看到当前的JDK版本。
Maven的配置和安装
安装可以参考:
http://blog.csdn.net/sin90lzc/article/details/7429620
Eclipse及插件安装
到eclipse官网下载4.2或者最新的4.3版本的eclipse.
下载地址:
http://www.eclipse.org/downloads/
安装PyDev插件,用来查看python角本,因为底层操作是使用python写的。
安装地址:
http://pydev.org/updates/
然后安装eclipse的m2e插件,就是eclipse的maven插件。
安装地址:
http://download.eclipse.org/technology/m2e/releases
然后在eclipse的
因为源码是上传到git上的,所以要安装Egit插件。
安装地址:Preferences里边配置maven的路径,就是刚安装的maven的路径。
http://download.eclipse.org/egit/updates
安装完成后可以到菜单Help->About Eclipse->Installation Details,点击
下载源码
使用File->Import
选择Next,选择URI
输入:
https://git-wip-us.apache.org/repos/asf/cloudstack.git
选择要调试的版本,这里要调试是4.02版本,比较稳定的一个版本,如下图:
然后选择本地路径,Finish。
接下来就等着下载源码,这个时间跟网速有关。
然后再选择File->Import,选择Existing Maven Projects,选择刚才保存的git本地路径,导入刚下载的工程。
编译和运行jetty
使用maven编译,点击Run->Run Configuration
compile -U,-U表示强制更新,如果有未更新完成的包也会重新下载,这个可以根据自己的情况选择加或不加。
然后点Run,编译成功后会出现如下结果:
[INFO] Reactor Summary:
[INFO]
[INFO] Apache CloudStack ................................. SUCCESS [1.038s]
[INFO] Apache CloudStack Utils ........................... SUCCESS [1.485s]
[INFO] Apache CloudStack API ............................. SUCCESS [0.633s]
[INFO] Apache XenSource XAPI ............................. SUCCESS [0.135s]
[INFO] Apache CloudStack Core ............................ SUCCESS [0.495s]
[INFO] Apache CloudStack Agents .......................... SUCCESS [0.546s]
[INFO] Apache CloudStack SystemVM Patches ................ SUCCESS [0.209s]
[INFO] Apache CloudStack Console Proxy ................... SUCCESS [0.347s]
[INFO] Apache CloudStack Server .......................... SUCCESS [0.470s]
[INFO] Apache CloudStack Usage Server .................... SUCCESS [0.214s]
[INFO] Apache CloudStack Plugin POM ...................... SUCCESS [0.196s]
[INFO] Apache CloudStack Plugin - User Concentrated Pod Deployment Planner SUCCESS [0.165s]
[INFO] Apache CloudStack Plugin - User Dispersing Deployment Planner SUCCESS [0.236s]
[INFO] Apache CloudStack Plugin - Host Allocator Random .. SUCCESS [0.355s]
[INFO] Apache CloudStack Plugin - Hypervisor OracleVM .... SUCCESS [0.477s]
[INFO] Apache CloudStack Plugin - Open vSwitch ........... SUCCESS [0.328s]
[INFO] Apache CloudStack Plugin - Hypervisor Xen ......... SUCCESS [0.412s]
[INFO] Apache CloudStack Plugin - Hypervisor KVM ......... SUCCESS [0.395s]
[INFO] Apache CloudStack Plugin - Network Elastic Load Balancer SUCCESS [0.174s]
[INFO] Apache CloudStack Plugin - Network Nicira NVP ..... SUCCESS [0.175s]
[INFO] Apache CloudStack Plugin - Storage Allocator Random SUCCESS [0.158s]
[INFO] Apache CloudStack Plugin - User Authenticator LDAP SUCCESS [0.161s]
[INFO] Apache CloudStack Plugin - User Authenticator MD5 . SUCCESS [0.169s]
[INFO] Apache CloudStack Plugin - User Authenticator Plain Text SUCCESS [0.166s]
[INFO] Apache CloudStack AWS API Bridge .................. SUCCESS [2.046s]
[INFO] Apache CloudStack Test ............................ SUCCESS [0.167s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.256s
[INFO] Finished at: Fri Aug 02 22:21:41 CST 2013
[INFO] Final Memory: 25M/357M
[INFO] ------------------------------------------------------------------------
然后运行jetty,这个默认是在cloud-client-ui这个工程里边配置的,所以配置如下:
如果中间出现问题,岀到出错的工程中选择maven clean然后再maven install一下,然后再执行cloudrun运行jetty,这样反复几次,就可以成功运行jetty了。
这时启动会报错,因为没有安装数据库。
安装数据库:
$ sudo apt-get install mysql-server
在弹出的界面中输入密码,如: cloudstack
然后
修改MySQL配置文件参数
$ sudo vim /etc/mysql/my.cnf
在[mysqld]模块中加入以下参数
1 innodb_rollback_on_timeout=1
2 innodb_lock_wait_timeout=600
3 max_connections=350
4 log-bin=mysql-bin
5 binlog-format = 'ROW'
重启MySQL
$ sudo service mysql restart
在eclipse中找到replace.properties文件,修改replace.properties文件中的key为DBROOTPW的值,这个值是mysql默认的密码,我们修改成上面的cloudstack
然后安装ant
sudo apt-get install ant
安装完成后到源码安装目录或者在eclipse中执行
ant deploydb
这样数据库就可以成功部署了。
然后在调试的时候需要选择Debug->Debug Configuration->Source->Add
将所有源码工程加上。
然后打上断点,以Debug模式运行,就可用断点调试了。
可能遇到的问题
1、工程jar包丢失,编译不过去
[WARNING] The POM for org.apache.cloudstack:cloud-plugin-user-authenticator-md5:jar:4.0.2 is missing, no dependency information available
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/cloudstack/cloud-plugin-user-authenticator-plaintext/4.0.2/cloud-plugin-user-authenticator-plaintext-4.0.2.pom
[WARNING] The POM for org.apache.cloudstack:cloud-plugin-user-authenticator-plaintext:jar:4.0.2 is missing, no dependency information available
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/cloudstack/cloud-plugin-network-nvp/4.0.2/cloud-plugin-network-nvp-4.0.2.pom
[WARNING] The POM for org.apache.cloudstack:cloud-plugin-network-nvp:jar:4.0.2 is missing, no dependency information available
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/cloudstack/cloud-plugin-network-ovs/4.0.2/cloud-plugin-network-ovs-4.0.2.pom
[WARNING] The POM for org.apache.cloudstack:cloud-plugin-network-ovs:jar:4.0.2 is missing, no dependency information available
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/cloudstack/cloud-plugin-network-elb/4.0.2/cloud-plugin-network-elb-4.0.2.pom
[WARNING] The POM for org.apache.cloudstack:cloud-plugin-network-elb:jar:4.0.2 is missing, no dependency information available
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/cloudstack/cloud-plugin-hypervisor-xen/4.0.2/cloud-plugin-hypervisor-xen-4.0.2.pom
[WARNING] The POM for org.apache.cloudstack:cloud-plugin-hypervisor-xen:jar:4.0.2 is missing, no dependency information available
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/cloudstack/cloud-plugin-hypervisor-ovm/4.0.2/cloud-plugin-hypervisor-ovm-4.0.2.pom
[WARNING] The POM for org.apache.cloudstack:cloud-plugin-hypervisor-ovm:jar:4.0.2 is missing, no dependency information available
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/cloudstack/cloud-plugin-hypervisor-kvm/4.0.2/cloud-plugin-hypervisor-kvm-4.0.2.pom
[WARNING] The POM for org.apache.cloudstack:cloud-plugin-hypervisor-kvm:jar:4.0.2 is missing, no dependency information available
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/cloudstack/cloud-plugin-storage-allocator-random/4.0.2/cloud-plugin-storage-allocator-random-4.0.2.pom
[WARNING] The POM for org.apache.cloudstack:cloud-plugin-storage-allocator-random:jar:4.0.2 is missing, no dependency information available
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/cloudstack/cloud-plugin-planner-user-dispersing/4.0.2/cloud-plugin-planner-user-dispersing-4.0.2.pom
[WARNING] The POM for org.apache.cloudstack:cloud-plugin-planner-user-dispersing:jar:4.0.2 is missing, no dependency information available
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/cloudstack/cloud-plugin-planner-user-concentrated-pod/4.0.2/cloud-plugin-planner-user-concentrated-pod-4.0.2.pom
[WARNING] The POM for org.apache.cloudstack:cloud-plugin-planner-user-concentrated-pod:jar:4.0.2 is missing, no dependency information available
[INFO] Downloading: http://repo.maven.apache.org/maven2/org/apache/cloudstack/cloud-plugin-host-allocator-random/4.0.2/cloud-plugin-host-allocator-random-4.0.2.pom
[WARNING] The POM for org.apache.cloudstack:cloud-plugin-host-allocator-random:jar:4.0.2 is missing, no dependency information available
找到对应的工程,然后执行mvn clean install,哪个出问题就在哪个工程上执行就可以了。
- Python 异常处理完整指南
- 有趣的安全实验:利用多线程资源竞争技术上传shell
- NotSerializableException解决方法NotSerializableException
- 谁蹭了我的WiFi?浅谈家用无线路由器攻防
- 当输入流和输出流同时作用一个文件
- 揭秘:充电宝是如何盗取你的个人隐私的?
- 微软:暴力破解面前,增强密码复杂性基本没用
- 创建被图像填充的组件解释几处做法解释几点
- Android原生嵌入React Native
- React Native控件之Listview
- React Native控件只TextInput
- Qzone React Native改造
- android 特卖列表倒计时卡顿问题
- ios zxing扫码问题
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 【服务网格架构】Envoy架构概览(9):访问日志,MongoDB,DynamoDB,Redis
- Redis Cluster 原理分析
- Ceph介绍及原理架构分享
- 分布式存储Ceph之PG状态详解
- JS中的事件循环机制与宏队列、微队列笔记
- Redis 哨兵机制以及底层原理深入解析,这次终于搞清楚了
- SQL 找出分组中具有极值的行
- 接入层Nginx架构及模块介绍分享
- 【问题修复】mds0: Metadata damage detected
- 【服务网格架构】Envoy架构概览(6):异常检测
- 分布式存储Cephfs读取优化方案
- SQL 确定序列里缺失值的范围
- 【问题修复】osd自杀问题跟踪
- mds元信息缓存不释放问题
- 线程安全问题,synchronized 和 ReentrantLock 详细讲解