paulwong

#

PMD for Jenkins

PMD jenkins plugin is only displaying the PMD check results. You need to run PMD using Maven as part of your build triggered by Jenkins. For example this could look like that in your pom.xml

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>2.7.1</version>
            <configuration>
                <linkXRef>false</linkXRef>
                <targetJdk>1.6</targetJdk>
                <rulesets>
                    <ruleset>/rulesets/basic.xml</ruleset>
                </rulesets>
            </configuration>
        </plugin>
    </plugins>
</reporting>

Then PMD-jenkins will know where to pick up the results and publish them for you.

To get the results you will need to add this code to your pom.xml and execute the according target in Jenkins, yes.

Note that this is not related to PMD-plugin in Eclipse. The Eclipse PMD plugin just shows the result of the local analysis, not related to Jenkins.

posted @ 2014-07-12 15:04 paulwong 阅读(524) | 评论 (0)编辑 收藏

MAC下JAVA的安装路径

/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home

posted @ 2014-07-12 12:21 paulwong 阅读(10197) | 评论 (0)编辑 收藏

搭建基于Jenkins+SVN+Maven持续集成环境(CI)

一、准备工作

1. 下载jenkins.war,也可以使用特定环境的安装包。将其拷贝到c:\Dev\Jenkins目录

2. SVN, Maven

二、启动Jenkins

在命令行启动Jenkins

java -jar jenkins.war --httpPort=8080, --httpPort 用来指定端口号。

在地址栏输入http://localhost:8080, 看到Jenkins主界面,就说明安装成功了。

搭建基于Jenkins+SVN+Maven持续集成环境(CI)

三、Jenkins插件

确保SVN和Maven插件都已经安装好了,可以到Jenkins配置里面去查看,如果没有可以装上。

Manage Jenkins->Manage Plugins->Installed

默认情况下,SVN和Maven插件都是安装好的,如果你需要安装其他的插件可以在Available中查找。

搭建基于Jenkins+SVN+Maven持续集成环境(CI)

四、配置Jenkins

新安装的Jenkins需要配置一些环境,例如JAVA_HOME,MAVEN_HOME等

Manage Jenkins->Configure System

搭建基于Jenkins+SVN+Maven持续集成环境(CI)

# of executors 用来指定同一时间最多能跑的job数量。

SCM checkout retry count 如果从版本库签出代码失败,jenkins会按照这个次数重试。

JDK 配置Java环境, Maven 配置Maven环境。

五、创建Maven任务

New Job-> 新建任务

Job name->home-ci,ci指代commit阶段,说明这个job是用来不断集成我们的代码的。

Build a maven2/3 project->我们的项目是用maven来管理的,所以我们选择maven job

搭建基于Jenkins+SVN+Maven持续集成环境(CI)

1. 首先我们配置SVN,选择Subversion,填上项目的Repository URL,然后可以指定从这个地址签出的代码保存的位置。其他默认选择。

2. Build Trigger

该选项是用来配置自动构建的,比如我们想让项目每天中午一点和晚上一点自动构建,只需要在Build periodically中写出0 13,1 * * *.在这里我们使用Poll SCM,"Poll SCM"用来定期检查版本库是否有更新,如果有更新,触发构建。我们就让它每分钟检查一次,输入* * * * *。

搭建基于Jenkins+SVN+Maven持续集成环境(CI)

3. 配置Maven

pom.xml文件,jenkins会去寻找需要执行的maven pom文件,需要给定。

我们需要运行maven 的 clean install 命令,在Goals and options中指定。

4. 生成打包文件

Post-build Actions 这里我们可以使用一些分析工具,比如checkstyle, 代码测试覆盖率等等。

这里我们只指定需要生产的最终文件War或者Jar,在Archive the artifacts 中输入你想要的打包方式。

/trunk/home/home-ci/*.war;/trunk/home/test-report/*.html

六、运行构建

点击左侧的Build Now按钮,点击Build History中的数字就可以看到本次构建的详细。

搭建基于Jenkins+SVN+Maven持续集成环境(CI)

每次构建可以点击Changes查看是否有更改, Console output可以看到本次构建的详细输出。

posted @ 2014-07-12 00:11 paulwong 阅读(2505) | 评论 (0)编辑 收藏

Jenkins+Maven+SVN快速搭建持续集成环境(转)

Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面看看我们是如何几分钟就快速搭建一个持续集成环境吧。

假设我们目前已经有2个maven项目:entities(JAVA类库),web(Web应用,依赖entities)。

一、安装Jenkins

地址http://mirrors.jenkins-ci.org/下载适合的Jenkins版本。

Windows最新稳定版的Jenkins地址为:http://mirrors.jenkins-ci.org/windows-stable/jenkins-1.409.1.zip

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service

把Jenkins 1.409.1版解压,把得到的war包直接扔到tomcat下,启动tomcat,Jenkins就安装完毕,是不是很简单啊。

redhat系统下安装流程:https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions

二、配置Jenkins

1、打开http://10.3.15.78:8080/jenkins/,第一次进入里面没有数据,我们需要创建job,我们这有2个项目,需要创建2个job。http://10.3.34.163:9890/jenkins/

2、点击左上角的new job,在new job页面需要选择job的类型,Jenkins支持几种类型,我们选择“构建一个maven2/3项目”,Job名为:guan_caijing,如图所示:

image

3、点击OK按钮后,进会进入详细配置界面,详细配置界面的配置项很多,不过不用怕,大部分使用默认配置就可以了,下面就说说我们需要修改的几个地方:

3.1)Source Code Management

因为我们使用SVN管理源码,所以这里选择Subversion,并在Repository URL中输入我们的SVN地址:

http://10.3.34.163:9880/guan_caijing/trunk/

输入SVN库的URL地址后,Jenkins会自动验证地址,并给予提示。

clip_image004

点击红色字体部分的enter credential链接,进入如下页面:

clip_image006

设置好访问SVN库的用户名和密码后,点击OK按钮,显示:

clip_image008

说明设置成功。点击Close按钮,返回之前的Source Code Management页面。此时不再有红色警告信息了。

clip_image010

3.2)配置自动构建的计划,假设我们想让项目中每天12点和晚上8点自动构建一次,只需要在Build Triggers中选择Build periodically,并在Schedule中输入 0 12,20 * * *

我配置的是每晚8点自动构建

clip_image012

注:Schedule的配置规则是有5个空格隔开的字符组成,从左到右分别代表:分 时 天 月 年。*代表所有,0 12,20 * * * 表示“在任何年任何月任何天的12和20点0分”进行构建。

3.3)配置到这里,可能有人发现在Build配置节点,有红色错误信息,提示

Jenkins needs to know where your Maven2 is installed. 
Please do so from the system configuration.

如图所示:

clip_image014

这是因为Jenkins找不到maven的原因,点击"system configuration",是system configuration的maven配置中添加maven目录就OK,如下图:

clip_image016

我设置了JRE 6和MAVEN 3的安装目录。

点击左下角的SAVE按钮,保存设置。

3.4)保存好所有配置后,我们第1个job就算是完成了。

3.5)创建第2个job,配置和上面的配置相同。只需把svn地址改成:http://localhost/svn/Web

三、手动构建

在经过上面的配置后,回到Jenkins首页,在首页可以看到刚才添加的2个job,如下图:

clip_image018

点击某1个job后后面的"Schedule a build"图片手动构建,点击完后,会在左边的Build Queue或者Build Executor Status 显示正在构建的任务,在自动构建完后,刷新页面,就可以看到构建结果了,如何某个项目构建失败,点击项目后面的构建数字(从1开始递增)进入项目的"Console Output "可以查看项目构建失败的原因。当然我们也可以配置把构建失败的结果发到邮箱。

到目前为止,1个简单的自动构建环境就搭建好了,很简单吧。

四、自动部署

看完上面发现Jenkins配置真的很简单,几分钟就搭建好自动构建环境,但环境搭建好后发现1个问题,现在是能自动构建了,但是构建好的web.war都还是在Jenkins目录下,并没有发布到tomcat中,还需要手动copy过去?

这是个问题,不过别急,要达到自动部署的目的,需要安装1个Jenkins的部署插件。选择“系统管理”菜单的“管理插件”:

clip_image020

选择“可选插件”,找到Deploy Plugin 1.8插件,选择它。

clip_image022

注:Deploy Plugin 1.8插件支持Tomcat 4.x/5.x/6.x/7.x ,JBoss 3.x/4.x ,Glassfish 2.x/3.x

点击底部的“安装”按钮,显示:

clip_image024

耐心等待:

clip_image026

直到Deploy Plugin完成,显示Success:

clip_image028

选择框打钩,Jenkins会自动重启:

clip_image030

此时,在插件管理的“已安装”Tab页,可以看到部署插件已安装完毕。

clip_image032

重新进入web的configure 配置界面,在最下面会发现多处1个配置项,我们配置如下:

clip_image034

注:war file使用的是Jenkinsworkspace的相对目录,hudon默认的目录在:

C:\Documents and Settings\用户名\.Jenkins\

workspace目录:C:\Documents and Settings\用户名\.Jenkins\ jobs\web\workspace\

最终产生的war在:C:\Documents and Settings\用户名\.Jenkins\ jobs\web\workspace\Web\target\web.war

保存配置再重新构建一次,打开tomcat的webapps目录,发现web.war终于过来了,大功告成。

posted @ 2014-07-11 22:55 paulwong 阅读(455) | 评论 (0)编辑 收藏

通过终端调试 AngularJS 应用

     摘要: 当我们构建AngularJS应用时,通过浏览器(如Chrome,Firefox和IE)的JavaScript控制台访问应用中隐藏的数据和服务总会有些困难。下面是一些简单的技巧可以帮助我们通过Javascript控制台来查看或者控制正在运行的Angular应用,使得应用可以比较容易进行测试,修改,甚至实时的修改我们的Angular应用:1: 访问作用域通过一行简单的JS程序访问页面中任何作用域(甚至...  阅读全文

posted @ 2014-07-11 08:11 paulwong 阅读(306) | 评论 (0)编辑 收藏

Bootstrap 3 Vector UI Kit

http://bootstrapuikit.com/

http://bootstrapuikit.com/bootstrap-3-gui-kit.zip

posted @ 2014-07-10 08:16 paulwong 阅读(394) | 评论 (0)编辑 收藏

20 个免费的 Bootstrap 的后台管理模板

Bracket Responsive Bootstrap 3 Admin Template

Bootstrap Admin Templates-15

Apricot Bootstrap 3 Admin Dashboard Template

Bootstrap Admin Templates-16

Cameo – Bootstrap 3 Responsive Admin Template

Bootstrap Admin Templates-17

DefOne – Responsive Bootstrap 3 Admin Template

Bootstrap Admin Templates-18

AdminEx – Bootstrap 3 Responsive Admin Template

Bootstrap Admin Templates-19

Delighted Flat Ajax Bootstrap 3 Dashboard

Bootstrap Admin Templates-20

Hierapolis Admin Template

Bootstrap Admin Templates-12

EdenAdmin

Bootstrap Admin Templates-14

Bootstrap Admin Theme

Bootstrap Admin Templates-13

Meritoo

Bootstrap Admin Templates-11

HTML5 Admin Template

Bootstrap Admin Templates-10

Metis

Bootstrap Admin Templates-5

SB Admin v.2

Bootstrap Admin Templates-6

TemplateVamp

Bootstrap Admin Templates-7

Clean Dashboard Bootstrap Template

Bootstrap Admin Templates-8

Charisma Responsive Admin Template

Bootstrap Admin Templates-9

Metro Dashboard

Bootstrap Admin Templates-4

AdminLTE

Bootstrap Admin Templates-3

Blocks 

Bootstrap Admin Templates-2

DevOOPS

Bootstrap Admin Templates-1

via dizyne

posted @ 2014-07-10 08:13 paulwong 阅读(2217) | 评论 (0)编辑 收藏

Spring Data REST,Spring MVC的REST扩展

http://spring.io/blog/2012/06/26/spring-data-rest-1-0-0-rc1-released

RESTify your JPA Entities
https://www.openshift.com/blogs/restify-your-jpa-entities

babdev-spring
https://github.com/gregorriegler/babdev-spring/tree/master/spring-data-rest

https://github.com/spring-projects/spring-data-rest

posted @ 2014-07-09 17:36 paulwong 阅读(787) | 评论 (1)编辑 收藏

三层架构及其优缺点

三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合"的思想。
  1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
  2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
  3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
注:(内聚:一个模块内各个元素彼此结合的紧密程度;耦合:一个软件结构内不同模块之间互连程度的度量)

优缺点
  优点:
  1、开发人员可以只关注整个结构中的其中某一层;
  2、可以很容易的用新的实现来替换原有层次的实现;
  3、可以降低层与层之间的依赖;
  4、有利于标准化;
  5、利于各层逻辑的复用。
6、扩展性强。不同层负责不同的层面,如PetShop可经过简单的配置实现Sqlserver和oracle之间的转换,当然写好了也可以实现B/S与C/S之间的转换
7、安全性高。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。
8、项目结构更清楚,分工更明确,有利于后期的维护和升级

  缺点:
  1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
  2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码
3、增加了代码量,增加了工作量


三层架构是:

一:界面层
界面层提供给用户一个视觉上的界面,通过界面层,用户输入数据、获取数据。界面层同时也提供一定的安全性,确保用户不用看到不必要的机密信息。

二:逻辑层

逻辑层是界面层和数据层的桥梁,它响应界面层的用户请求,执行任务并从数据层抓取数据,并将必要的数据传送给界面层。

三:数据层
数据层定义、维护数据的完整性、安全性,它响应逻辑层的请求,访问数据。这一层通常由大型的数据库服务器实现,如Oracle 、Sybase、MS SQl Server等。

------

从开发角度和应用角度来看,三层架构比双层或单层结构都有更大的优势。三层结构适合群体开发,每人可以有不同的分工,协同工作使效率倍增。开发双层或单层应用时,每个开发人员都应对系统有较深的理解,能力要求很高,开发三层应用时,则可以结合多方面的人才,只需少数人对系统全面了解,从一定程度工降低了开发的难度。
三层架构属于瘦客户的模式,用户端只需一个较小的硬盘、较小的内存、较慢的CPU就可以获得不错的性能。相比之下,单层或胖客户对面器的要求太高。
三层架构的另一个优点在于可以更好的支持分布式计算环境。逻辑层的应用程序可以有多个机器上运行,充分利用网络的计算功能。分布式计算的潜力巨大,远比升级CPU有效。
三层架构的最大优点是它的安全性。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。
另外三层架构还可以支持如下功能:Remote Access(远程访问资料),例如可透过Internet存取远程数据库;High Performance(提升运算效率)解决集中式运算(Centralize)及主从式架构(Client-Server)中,数据库主机的运算负担,降低数据库主机的Connection Load,并可藉由增加App Server处理众多的数据处理要求,这一点跟前面讲到的分布式计算提高运算能力是一个道理;Client端发出Request(工作要求)后,便可离线,交由App Server和DataBase Server共同把工作完成,减少Client端的等待时间;这个功能我觉得应用场合不是很多,自己感受也不是很深刻,从理论上是成立的。

posted @ 2014-07-09 17:24 paulwong 阅读(435) | 评论 (0)编辑 收藏

六款值得推荐的android(安卓)开源框架简介【转】

1、volley

项目地址 https://github.com/smanikandan14/Volley-demo
(1) JSON,图像等的异步下载;
(2) 网络请求的排序(scheduling)
(3) 网络请求的优先级处理
(4) 缓存
(5) 多级别取消请求
(6) 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)


2、android-async-http

项目地址:https://github.com/loopj/android-async-http
文档介绍:http://loopj.com/android-async-http/
(1) 在匿名回调中处理请求结果
(2) 在UI线程外进行http请求
(3) 文件断点上传
(4) 智能重试
(5) 默认gzip压缩
(6) 支持解析成Json格式
(7) 可将Cookies持久化到SharedPreferences


3、Afinal框架

项目地址:https://github.com/yangfuhai/afinal
主要有四大模块:
(1) 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。
(2) 注解模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。
(3) 网络模块:通过httpclient进行封装http数据请求,支持ajax方式加载,支持下载、上传文件功能。
(4) 图片缓存模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。
FinalBitmap可以配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。FinalBitmap的内存管理使用lru算法,
没有使用弱引用(android2.3以后google已经不建议使用弱引用,android2.3后强行回收软引用和弱引用,详情查看android官方文档),
更好的管理bitmap内存。FinalBitmap可以自定义下载器,用来扩展其他协议显示网络图片,比如ftp等。同时可以自定义bitmap显示器,
在imageview显示图片的时候播放动画等(默认是渐变动画显示)。


4、xUtils框架

项目地址:https://github.com/wyouflf/xUtils
主要有四大模块:
(1) 数据库模块:android中的orm框架,一行代码就可以进行增删改查;
支持事务,默认关闭;
可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);
支持绑定外键,保存实体时外键关联实体自动保存或更新;
自动加载外键关联实体,支持延时加载;
支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。
(2) 注解模块:android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。
(3) 网络模块:支持同步,异步方式的请求;
支持大文件上传,上传大文件不会oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;
下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;
返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。
(4) 图片缓存模块:加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
支持加载网络图片和本地图片;
内存管理使用lru算法,更好的管理bitmap内存;
可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...


5、ThinkAndroid

项目地址:https://github.com/white-cat/ThinkAndroid
主要有以下模块:
(1) MVC模块:实现视图与模型的分离。
(2) ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。
(3) 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。
(4) http模块:通过httpclient进行封装http数据请求,支持异步及同步方式加载。
(5) 缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置
(6) 图片缓存模块:imageview加载图片的时候无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。
(7) 配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference、Properties对配置进行存取。
(8) 日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印
(9) 下载器模块:可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。
(10) 网络状态检测模块:当网络状态改变时,对其进行检


6、LoonAndroid

项目地址:https://github.com/gdpancheng/LoonAndroid
主要有以下模块:
(1) 自动注入框架(只需要继承框架内的application既可)
(2) 图片加载框架(多重缓存,自动回收,最大限度保证内存的安全性)
(3) 网络请求模块(继承了基本上现在所有的http请求)
(4) eventbus(集成一个开源的框架)
(5) 验证框架(集成开源框架)
(6) json解析(支持解析成集合或者对象)
(7) 数据库(不知道是哪位写的 忘记了)
(8) 多线程断点下载(自动判断是否支持多线程,判断是否是重定向)
(9) 自动更新模块
(10) 一系列工具类

其中的 volley ,13 年有研究过,扩展性非常好,个人比较喜欢的风格。其他如 android-async-http、Afinal 也相当不错。

posted @ 2014-07-09 16:56 paulwong 阅读(430) | 评论 (0)编辑 收藏

仅列出标题
共115页: First 上一页 49 50 51 52 53 54 55 56 57 下一页 Last