maven2,【原创】centos下部署hudson2+maven2+flexmojos3+mercurial进行Flex项目的可持续集成(1)


【软件准备】
OS:centos 5.6 i386
持续集成服务器:hudson-2.1.0-beta
自动化构建工具:Maven:apache-maven-2.2.1 Maven支持Flex的插件:flexmojos-3.8
分布式版本管理:mercurial-1.8.4
JDK:java-1.6.0-openjdk
flashplayer for linux:flash_player_10_linux_dev

第一部分:Maven2.2.1及Flexmojos3.8安装配置


假设主目录为:/home/xjimmy
【安装java】
yum install java-1.6.0-openjdk #install jre
yum install java-1.6.0-openjdk-devel #install jdk
java -version java version "1.6.0_20"
【安装mercurial(hg)】
yum install mercurial
hg --version Mercurial Distributed SCM (version 1.8.4) (see http://mercurial.selenic.com for more information)
【下载hudson,maven,flashplayer】
wget http://java.net/projects/hudson/downloads/download/war/hudson-2.0.1.war
wget http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-2.2.1-bin.tar.gz
wget http://download.macromedia.com/pub/flashplayer/updaters/10/flash_player_10_linux_dev.tar.gz
tar xzvf apache-maven-2.2.1-bin.tar.gz
tar xzvf flash_player_10_linux_dev.tar.gz
cd /home/xjimmy/flash_player_10_linux_dev/standalone/debugger
tar xzvf flashplayer.tar.gz
cp flashplayer /home/xjimmy/apache-maven-2.2.1/bin #将可执行flashplayer放到maven的bin目录下

【自启动脚本中加入环境变量】
vi /etc/profile
#加入如下内容
export JAVA_HOME=/usr/lib/jvm/java export M2_HOME=/home/xjimmy/apache-maven-2.2.1 export PATH=$PATH:$M2_HOME/bin
#保存后,最好重登录,使环境变量生效


【创建flex webapp项目】
cd apache-maven-2.2.1
mvn -v Apache Maven 2.2.1 (r801777; 2009-08-07 03:16:01+0800) Java version: 1.6.0_20 Java home: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux" version: "2.6.18-238.el5" arch: "i386" Family: "unix"
#选择合适的flexmojos-maven-plugin版本呢,如3.8
#http://repo1.maven.org/maven2/org/sonatype/flexmojos/flexmojos-maven-plugin/
#http://repository.sonatype.org/content/sites/flexmojos-site
【生成webapp项目】
mvn archetype:generate -DarchetypeRepository=http://repository.sonatype.org/content/groups/flexgroup -DarchetypeGroupId=org.sonatype.flexmojos -DarchetypeArtifactId=flexmojos-archetypes-modular-webapp -DarchetypeVersion=3.8
安装时,设置groupId和artifactId分别改为com.madeiracloud 、 flex-maven-madeiracloud 其它默认。
【目录结构】
[root@instant_dev apache-maven-2.2.1]# tree flex-maven-madeiracloud/ flex-maven-madeiracloud/ |-- pom.xml
|-- app (由swf改成,自定义) | |-- pom.xml | `-- src | `-- main | `-- flex | `-- Main.mxml |-- cmawslib (由swc改成,自定义) | |-- pom.xml | `-- src | |-- main | | `-- flex | | `-- App.as | `-- test | `-- flex | `-- TestApp.as `-- war |-- pom.xml `-- src `-- main `-- webapp `-- WEB-INF `-- web.xml 15 directories, 8 files
【修改/home/xjimmy/apache-maven-2.2.1/flex-maven-madeiracloud/pom.xml】
4.0.0
com.madeiracloud flex-maven-madeiracloud 1.0-SNAPSHOT pom
Flex Maven MadeiraCloud
sonatype-repo sonatype http://repository.sonatype.org/content/groups/flexgroup/ true true sonatype-snapshot http://repository.sonatype.org/content/groups/flexgroup/ true

lib_cmawslib app war

----------------------------------------------------------------------------------
【修改/home/xjimmy/apache-maven-2.2.1/flex-maven-madeiracloud/lib_cmawslib/pom.xml】
#备注:
#1.将本项目的源码放到/home/xjimmy/apache-maven-2.2.1/flex-maven-madeiracloud/lib_cmawslib/src目录下
#2.本项目用到了第三方库,先用mvn install:install-file命令安装swc库到本地资料库
#[root@instant_dev lib_cmawslib]# mvn install:install-file -Dfile=as3corelib.swc -DgroupId=com.madeiracloud -DartifactId=as3corelib -Dversion=1.0 -Dpackaging=swc -DlocalRepositoryPath=libs
#[root@instant_dev lib_cmawslib]# mvn install:install-file -Dfile=as3crypto.swc -DgroupId=com.madeiracloud -DartifactId=as3crypto -Dversion=1.0 -Dpackaging=swc -DlocalRepositoryPath=libs
####################################################
4.0.0 com.madeiracloud flex-maven-madeiracloud 1.0-SNAPSHOT
com.madeiracloud lib_cmawslib 1.0-SNAPSHOT swc
Flex Maven Library cmawslib /home/xjimmy/apache-maven-2.2.1/bin/flashplayer
src src/test org.sonatype.flexmojos flexmojos-maven-plugin 3.8 com.adobe.flex compiler 3.6.0.16995 pom true en_US 10.0.0 ????-????-????-????-????-???? /home/xjimmy/apache-maven-2.2.1/bin/flashplayer
com.adobe.flex.framework flex-framework 3.6.0.16995 pom com.adobe.flexunit flexunit 4.0-rc-1 swc test com.madeiracloud as3crypto 1.0 swc com.madeiracloud as3corelib 1.0 swc custom-libs-local file:${project.basedir}/libs

-------------------------------------------------------------------------------
【修改/home/xjimmy/apache-maven-2.2.1/flex-maven-madeiracloud/war/pom.xml】
#(此文件为dos格式,行尾带^M硬回车,需要使用dos2unix ./war/pom.xml 转换成unix格式)
4.0.0 flex-maven-madeiracloud com.madeiracloud 1.0-SNAPSHOT
com.madeiracloud war 1.0-SNAPSHOT
war
Flex Maven War org.sonatype.flexmojos flexmojos-maven-plugin 3.8 copy-flex-resources
org.mortbay.jetty maven-jetty-plugin 6.1.17
com.madeiracloud app 1.0-SNAPSHOT swf
-----------------------------------------------------------------------------------
【开始构建】
cd /home/xjimmy/apache-maven-2.2.1/flex-maven-madeiracloud
mvn clean install
看到以下内容表示构建成功。
...
[INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] ------------------------------------------------------------------------ [INFO] Flex Maven MadeiraCloud ............................... SUCCESS [3.060s] [INFO] Flex Maven Library cmawslib ........................... SUCCESS [14.088s] [INFO] Flex Maven Application ................................ SUCCESS [4.240s] [INFO] Flex Maven War ........................................ SUCCESS [3.297s] [INFO] ------------------------------------------------------------------------ [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1 minute [INFO] Finished at: Thu Jun 30 10:46:14 CST 2011 [INFO] Final Memory: 34M/129M [INFO] ------------------------------------------------------------------------ channel stopped [DEBUG] Skipping watched dependency update; build not configured with trigger: flex-maven-madeiracloud #10 Finished: SUCCESS
至此,已经可以利用Maven+Flexmojos进行Flex Web项目的自动化构建。
未完待续...
Tags:  maven2

延伸阅读

最新评论

发表评论