JAE构建系统用户手册.doc_第1页
JAE构建系统用户手册.doc_第2页
JAE构建系统用户手册.doc_第3页
JAE构建系统用户手册.doc_第4页
JAE构建系统用户手册.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAE构建系统用户手册Maven构建方式作者:桃谷更新时间:2013-10-21版本:0.2一、预热知识3二、术语解释3三、实现限制31. 不支持goal:install deploy32. 不提供官方的Maven仓库镜像43. 不提供全局(通用)Maven settings.xml文件44. Maven构建脚本文件(pom.xml)限制4四、可能的问题41. 不支持二方依赖42.无法获取三方依赖53. 非Maven依赖5五、解决方法51. 解决二方依赖52. 解决三方依赖73. 解决特殊依赖10一、预热知识如果您是第一次使用Maven,请首先学习以下资源:/view/80e4c3136edb6f1aff001fdd.html如果您已经学习或者已熟悉Maven的工作原理以及使用方法,请忽略。二、术语解释二方依赖:是指独立于当前应用,由同一ISV开发的依赖资源三方依赖:有第三方开发的依赖资源,例如Apache Commons Language 三方类库(commons-lang:commons-lang:2.3:jar)Maven构建脚本文件:pom.xml文件三、实现限制JUAE平台支持Maven构建方式,支持最新Maven 3.0.5版本,由于特殊原因,做了以下限制:1. 不支持goal:install deploy 由于Maven构建在JUAE平台内部构建,多个应用可能在相同机器上面构建,为了防止多个应用工程相互冲突(多个应用groupId、artifactId、version重复),同时也防止非法源码泄漏的问题(利用groupId、artifactId、version获取源码)。 未来很有可能支持ISV独立Maven独立仓库时,可以解除当前限制2. 不提供官方的Maven仓库镜像目前官方无法提供Maven仓库镜像未来很有可能支持ISV独立Maven独立仓库时,可以解除当前限制3. 不提供全局(通用)Maven settings.xml文件目前实现不支持他全局(通用)Maven settings.xml,尽管如此,应用开发者很有可能自行添加私有Maven仓库镜像配置到settings.xml文件中,这样,线下和线上的配置不一致,可能导致应用工程源码线上构建时,无法获取第三方依赖。4. Maven构建脚本文件(pom.xml)限制Maven构建脚本文件(pom.xml)必须存放在应用工程的根目录下,并且文件名称必须为”pom.xml”四、可能的问题1. 不支持二方依赖 由于不支持install和deploy无法将二方应用依赖部署仓库中去,同时没有官方Maven仓库镜像,因此也无法下载相应的依赖2.无法获取三方依赖 由于官方无法提供Maven仓库镜像或者配置了私有Maven仓库地址,当应用工程源码线上构建时,无法获取第三方依赖3. 非Maven依赖 由于应用需要依赖无法从Maven仓库获取,或者压根就不存在五、解决方法1. 解决二方依赖在上章中提到,构建系统不支持二方依赖。因此,可以通过将二方应用工程源码作为当前应用工程。例如:当前应用工程project-test其Maven原信息为:com.acemproject-test1.0.0所依赖二方jar包:common-service-2.0.0.jar,对应的Maven原信息为:moncommon-service2.0.0可common-service为二方应用工程,那么,如果要解决二方依赖的问题,解决的办法是:将common-service工程作为project-test的子模块。具体操作步骤如下:首先,将common-service工程目录复制到project-test工程目录(请注意清理svn或者git元信息目录,防治版本控制混乱)然后,将common-service工程配置成project-test工程的子模块,在project-test工程pom.xml文件添加配置:. common-service . .最终,添加依赖管理配置: mon common-service 2.0.0 . 2. 解决三方依赖由于非官方公用Maven仓库稳定性无法保证,因此构建系统Maven settings.xml文件仅支持官方公共仓库,即默认仓库配置(/)。强烈推荐应用开发人员尽可能地使用官方仓库中的三方依赖配置。因此,在应用Maven工程构建(或迁移)时,尽可能地在中央Maven仓库中搜索(/)。例如,应用工程依赖struts 2,因此,搜索关键字”struts”,其结果页为:/#search%7Cga%7C1%7Cstruts查找版本等于2的结果记录:点击2的连接,进入配置详情页面:/#artifactdetails%7Corg.apache.struts%7Cstruts-parent%7C2%7Cpom复制红色区域的内容到应用工程的Maven依赖配置区。如果第三方依赖无法在中央仓库获取的话,允许在应用工程pom.xml文件中,添加合理的仓库配置信息,例如: ibiblio Ibiblio Maven Repository /maven2 default Slowly office site /maven/2/ 3. 解决特殊依赖本节中的特殊依赖是指当无法从Maven仓库下载的依赖资源。幸运地是,Maven提供了自定义本地仓库方式处理特殊依赖问题。接下来,将详细介绍操作方法。Maven的仓库配置比较灵活,可以定义远程仓库,一般通过HTTP协议获取。同时,还可以配置本地仓库,利用的是file协议。实际上,自定义本地仓库与Maven本地仓库的目录结构。以Google guava工程为例,其依赖配置信息为: com.google.guava guava 14.0.1 笔者本地Maven仓库路径为:D:softwaredevjavamaven_repository,Maven依赖目录结构规则如下:1. groupId目录结构以上述Google guava工程为例,groupId与Java package规则类似,本例中的groupId为”com.google.guava“,因此,groupId目录结构如下:-com-google-guava2. artifactId目录结构相对于groupId而言,artifactId目录结构相对简单,artifactId即为目录名称。因此,本例artifactId目录名称为guava,并且在groupId目录下,其目录结构为:-com-google-guava-guava3. version目录结构与artifactId目录结构规则一样,version即为目录名称。version目录存放在artifactId目录下。因此,本例中的version目录结构为:-com-google-guava-guava-14.0.14. 资源文件名具体依赖资源文件就存放在version目录下,并且其名称模式为:$artifactId-$version.$packaging其中,packaging为pom.xml中的打包类型配置,例如:pom,jar,war,ear等。故此规则,本例中的资源文件名为:guava-14.0.1.jar了解此规则之后,最终展示笔者本地maven仓库中guava-14.0.1.jar路径:第一步:配置本地仓库在应用工程pom.xml追加本地仓库配置,请参考下面红色字体部分: Slowly office site /maven/2/Project RepositoryMy Project Repositoryfile:/$project.basedir/project-repos在id为”Project Repository”的仓库配置中,其url为:file:/$project.basedir/project-repos,其中,$project.basedir表示当前工程文件路径,url配置说明本地仓库将会以当前工程的子目录project-repos为跟路径。实际上,url可以是任意目录路径,之所以要使用占位符$project.basedir,目的在于确保依赖的资源存放在当前工程目录下,线上构建时能够正确的定位。第二步:创建目录结构回顾project-test工程例子,其依赖版本2.0.0的common-service jar包,其依赖配置为: mon common-service 2.0.0 假设project-test工程目录路径为D:project-test的话,根据自定义仓库url配置file:/$project.basedir/project-repos,即project-test自定义仓库目录为D:project-testproject-repos。套用Maven依赖目录规则,创建依赖目录:comacemcommoncommon-service2.0.0,故完整的目录路径为D:project-testproject-reposcomacemcommoncommon-service2.0.0,注意该路径为依赖资源父目录路径,并非资源路径

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论