在Flex项目中使用Maven.docx
- 文档编号:5291065
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:9
- 大小:243.85KB
在Flex项目中使用Maven.docx
《在Flex项目中使用Maven.docx》由会员分享,可在线阅读,更多相关《在Flex项目中使用Maven.docx(9页珍藏版)》请在冰豆网上搜索。
在Flex项目中使用Maven
在Flex项目中使用Maven
(一)之Maven简介
对于大多数Flex开发者来说,Maven可能是个陌生的概念。
来自Java开发社区的开发者对于Maven可能会熟悉一些。
因此,我在文章开头,会首先介绍一下什么是Maven,Maven能帮助你做什么。
由于这些介绍基于我个人的理解,因此有不够全面的地方,大家可以去 这个地址查看完整的中文Maven教程。
Maven是一个在Java社区中广泛使用的工具,简单的说,你可以认为他是一个编译构建工具。
而实际上,他的功能远远不止编译和构建,他实际上是一个项目生命周期的管理工具。
在Maven的众多功能中,我大致说4点我认为Maven最有特点也最能够让我们从中受益的特点:
1,Maven对于一个项目文件路径的约定。
有一些人喜欢自己定义不同的文件夹来存放不同的文件,比如源代码,资源文件,测试用例等。
Maven提供了一个默认的文件夹目录结构,用于存放不同类型的项目文件。
Maven的这一点实际上是保证了快速上手。
因为如果你接触一个从未做过的新项目,而这个项目是用你熟悉的Maven文件目录结构来组织的,那么你可以迅速的找到源代码的位置,测试用例的位置,资源文件的位置等等。
2,Maven不仅仅是一个编译工具,他可以用于管理一个项目的生命周期:
编译,测试,打包,发布,文档生成,项目站点生成等。
有了这些功能,你可以省下很大的精力从而专注于代码的开发。
3,Maven可以帮助你管理应用程序依赖。
从个人角度来说,我认为我最喜欢Maven的这项功能:
一个Java项目也好一个Flex项目也好,你都会遇到各种各样的依赖,比如说你可能会依赖FlexSDK,不同的swc,在java中有不同的jar包需要依赖。
管理依赖是一个很麻烦的事情。
在Flex的开发中,如果你的发布环境在Linux上,也许你要花费很多的时间来搞定各种编译依赖关系从而能够在linux上顺利编译发布项目。
而Maven的依赖管理,通过groupid,artifactid,以及版本号帮助你一次性设置好项目环境。
不管你是在windows上还是linux还是MacOS,你都能用一个命令搞定编译,测试,打包等
4,Maven是可以扩展的。
如果你熟悉ant,你也许知道ant是一个自动化的编译工具,它也是可以扩展的,Maven也是可以扩展的,我们通过配置不同的Maven插件可以增强Maven的功能,比如svn的管理,比如我们这次需要使用的FlexMojos就是Maven的一个扩展,他让Maven可以不仅仅限于只能用于Java项目,也可以适用于Flex项目。
在Flex项目中使用Maven
(二)之Maven安装
在上一篇系列文章中 在Flex项目中使用Maven
(一)之Maven简介 中,我们介绍了Maven,这篇文章中,介绍如何安装Maven
由于Maven是基于Java的一个工具,Java环境是不可缺少的。
在windows上,你需要去Sun的网站上下载JDK目前1.5.16的版本都是可以的。
我们的项目开发大多数依赖于JDK1.5,我们安装的是JDK1.5。
在Sun的网站上 下载JDK1.5,执行可执行文件进行安装。
而Maven,我们则可以直接http:
//maven.apache.org/download.html页面,下载最新版本,解压后置于一个不含中文名称的目录下。
然后,你需要设置环境变量
1,JAVA_HOME设置为刚才安装的JDK的安装路径
2,M2_HOME设置为Maven的安装路径
3,path部分添加:
%M2_HOME%\bin;%JAVA_HOME%\bin
如图所示:
为了执行一些svn相关的操作,我还建议你安装命令行版本的svn客户端。
这是一个免费的在windows上的全功能的命令行svn客户端。
安装过程非常简单,只需要下载之后安装即可。
在Linux上,由于发行版本的不同,你可能需要不同的安装方式。
对于Debian和Ubantu来说,由于采用包安装的概念,因此安装过程甚至比windows还要简单。
在Debian和Ubantu上,如果你以root运行则使用
apt-get installmaven2
既可以安装,如果不是以root身份运行,则需要
1.sudoapt-getinstallmaven2
由于Debian的包管理也具备依赖解析的功能,因此maven所依赖的jdk会自动被安装。
在linux上,如果你没有svn客户端,你需要执行
apt-get installsubversion
至此,我们应该完成了Maven的安装和设置。
请关掉所有的命令行窗口,重新打开一个命令行窗口:
输入
mvn --version
如果这个命令运行正常,你应该看到类似于下面的输出:
如果你还安装了svn,那么,在输入 svn --version你会看到
这样的输出,那么,恭喜你,你已经安装好了maven,我们可以进入下一步:
创建Flex项目了。
在Flex项目中使用Maven(三)之Maven仓库
在前面两篇文章中,我们介绍了什么是Maven,如何安装并且设置好Maven的运行环境。
在这篇文章中,我们将介绍Maven仓库的概念。
这里,这个仓库的概念非常重要,因为他是Maven组成的一个非常重要的部分。
也是我们能够在Flex中使用Maven简化我们的日常操作的关键一步。
Maven仓库是为了解决依赖关系而设立的。
Maven有3种级别的仓库
1,公共仓库
这个公共仓库是由Maven自己维护,里面有大量的公用类库,当然,目前是以java为主。
如果你在使用BlazeDS,可以直接从Maven库获取依赖而不需要自己管理的哦。
2,私有共享库
这种仓库一般是由公司自己设立的,只为本公司内部共享使用。
其功能是
A,作为缓存服务器,缓存一些公共库中的类库。
比如,公司内员工A通过公司内部网络的私有仓库更新其一个项目的依赖关系,公司内部的私有仓库中没有这些库,于是这个私有仓库就连接到公共仓库去搜索,找到相应库后,返回给员工A,同时按照这个类库的标识和版本,将此库缓存在私有仓库中。
当公司的员工B再用到相同的库时,公司的私有仓库就可以直接返回这个库给B,如果你的java库依赖有10多M,一般情况下,要下载一阵子,但是,在公司内部网络中通过私有仓库的缓存,则会大大缩短这个时间。
B,作为公司内部协作的交换以及存档仓库。
在公司内部不同部门之间要用到一些本公司开发的共享库时,一个负责发布这个共享库的部门可以将编译好的二进制代码发布到公司私有库中,其他部分则可以直接通过公司私有仓库来更新,免去了大家互相拷贝造成的麻烦,也避免了不同版本的库的兼容性问题,因为当你使用Maven的时候,他会严格区分不同版本的类库。
一般情况下,大家可以使用的搭建Maven私有仓库的服务器有:
Nexus,以及artifactory。
他们功能类似,在大多数情况下,都可以胜任。
值得一提的是artifactory支持LDAP认证,这样你就可以把这个私有仓库的认证集成到你公司已经有的LDAP认证服务器上去。
在artifactory中,你还可以把几个不同的库整合成一个虚拟库,单独暴露一个路径,这样可以省去后面在Maven中添加多个库的地址的问题。
3,本地仓库
本地仓库则是顾名思义,他是你本地计算机上的仓库。
这个仓库的位置一般情况下都在:
{usr_home}/.m2下面。
在WindowsXP下面一般是c:
/documentsandsettings/repository 你的用户名/.m2,在windowsvista或者windows7下面就是C:
\Users\你的用户名\.m2\repository 下。
使用Linux的话,则在/home/用户名/.m2/repository 下。
这个本地仓库的作用跟私有仓库很类似。
缓存功能可以让你方便共享已经下载过的类库,而不需要为每个项目都准备一份拷贝。
我们的Flex项目中使用Maven,最好利用一个私有仓库来管理那些远程依赖以及管理你自己的编译结果发布。
如果你自己没有条件建立一个公网的服务器,那么,你可以考虑在你自己的局域网中建立。
建立这样一个私有服务器在我们的Flex项目开发中,益处多多。
尤其是,如果你打算在另外一台机器上编译项目的时候,光实现FlexSDK的依赖,就要下载不少东西。
有了私有仓库,则可以很好的缓存这些类库。
使得2次部署或者让你的开发同伴享受快速的安装过程。
在Flex项目中使用Maven(四)之FlexMojo
RIAMeeting在前面中3篇关于在Flex中使用Maven的文章中,我们对Maven进行了一下扫盲。
这篇文章开始进入到Maven开发的实质性部分:
使用flex-mojos插件来进行flex项目的开发。
flex-mojos是一个Maven插件,他为我们提供了一系列maven操作可以让我们方便的从源代码中编译出SWC,SWF,AIR的SWC以及AIR的SWF除此以外,所有你能够用FlexSDK进行的操作比如htmlwrapper的生成,RSL,Modules支持都可以做到。
另外,最方便的一点是,当你把项目整合到Maven中并且使用了flex-mojos之后,你可以不需要对项目做任何设置(包括在一个没有flexsdk的环境下)只通过一个命令,即可从源代码编译出你需要的目标文件。
下面,我们就一步一步将这个过程设置好:
按照前面的介绍,如果你已经设置好了Java和Maven环境。
那么就可以开始使用flex-mojos了。
首先我们先演示一下如何创建一个flex的应用程序项目:
mvn archetype:
generate -DarchetypeRepository=http:
//repository.sonatype.org/content/groups/public -DarchetypeGroupId=org.sonatype.flexmojos -DarchetypeArtifactId=flexmojos-archetypes-application-DarchetypeVersion=3.3.0
这里简单解释一下这个mvn命令:
1.archetype:
generate 是maven的一个标准的生命周期中的一个,他的作用是创建一个新的项目。
2.-DarchetypeRepository=http:
//repository.sonatype.org/content/groups/public 由于flex-mojos并不位于maven的默认公共仓库:
http:
//repo1.maven.org/maven2/ , 因此这个参数是为了告诉maven去哪个公共仓库寻找flex-mojos的库。
3.-DarchetypeGroupId=org.sonatype.flexmojos -DarchetypeArtifactId=flexmojos-archetypes-application -DarchetypeVersion=3.3.0 这三个参数我们放在一起说:
groupid和archetypesid以及version组合起来,构成maven系统中用来标识一个项目的绝对定位坐标。
1.groupid(组名)就是我们一般情况下认为你的项目属于哪个分组,一般以公司域名来命名,比如com.riameeting.flexmaven这样子的groupid表示这个项目是在riameeting下flexmaven组中的一个项目。
这里,我们看到这个值是org.sonatype.flexmojos 这个值实际上意味着我们要使用的这个插件(flex-mojos)是在org.sonatype下flexmojos项目组的开发的众多插件中的一个。
2.archetypeid(构件名)实际上是这个项目自身的一个名字,这里其具体值是:
flexmojos-archetypes-application 这个项目的名字其实告诉我们,他是flexmojos中用来创建flex应用程序项目的插件。
后面我们会看到,当你想创建flex的lib项目时,你使用的将会是另外一个archetypeid
3.version(版本号)是显而易见的一个值,指明目前这个插件项目的版本。
在我们继续前,我需要说明一下,这里的flexmojos实际上是maven插件,maven中,你所使用的插件也是maven所支持的众多项目中的一个普通项目,因此,他的标识也是由maven中的组名,构件名,以及版本号来决定的。
后面我们会看到,由于我们这里需要创建一个flex的项目,由于你也想用maven管理它,因此,它也会有组名,构件名,以及版本号。
此操作的结果显示在这里:
注意,如果运行时,你看到更多的输出内容,完全是正常的,由于你是第一次运行这个maven插件,maven会试图下载他所需要的插件类库,但是,下次你再运行类似任务的时候,这些内容就不会被再次下载了。
这个操作过程是互动的,因为这里面需要获取关于这个项目的一些信息:
1.组名称:
2.构件名称:
3.版本号码
4.程序中使用的包名,包名会默认从组名称中集成,如果你觉得这个组名作为包名没有问题,则可以什么都不输入,直接按回车。
前请看浅蓝色的框,我们什么都没有输入,默认使用com.riameeting.flexmaven来做包名
5.最终有一个确认汇总你所输入的信息来让你确认,汇总部分,如果确认无误,则输入Y或者直接回车确认。
否则,输入N重新输入你想要的内容。
通过这个操作,我们会创建一个目录结构,这个目录结构就是maven默认约定的目录,同时,还可以帮助你生成一个pom.xml的mvn配置文件。
这个目录结构中,在源代码目录中分为两个子目录:
main
test
main中的flex文件夹下是主要源代码
test中的flex文件夹下则是测试用例的源代码
pom.xml则是这个项目的mvn配置文件。
这个时候,你也许会想,我现在虽然有了项目结构目录了,但是我如何使用FlexBuilder来写代码呢?
由于Maven的默认repository里面并没有flexmojos插件的一些内容,我们现在需要告诉maven一个指定的公共仓库来获取他需要的内容。
这个设置可以通过在maven的配置文件中设置。
打开这个pom.xml文件,添加如下内容到project标签中:
添加了这部分内容后(在这里下载添加完成后的pom文件 ),我们就可以进入到pom.xml所在的文件夹,使用
mvnflexmojos:
flexbuilder
这个命令,这个命令是flexmojos这个插件中的一个命令,他的作用是为你生成flexbuilder所需的项目配置,以便于你可以把这个项目导入到flexbuilder中去。
这个命令的执行时间会稍长,尤其是你的网络状况不太好的情况下,因为flex-mojos会将flex-sdk下载到maven的本地仓库中。
等这个命令运行完毕后,你就可以在flexbuilder中导入这个项目,并且开始在flexbuider中编写代码了。
在本系列的下一篇文章中,riameeting会继续完善这个maven项目,为其加入svn的管理以及私有仓库的发布设置等。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Flex 项目 使用 Maven