- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAE构建系统用户手册.doc
JAE构建系统用户手册
Maven构建方式
作者:桃谷
更新时间:2013-10-21
版本:0.2
一、预热知识 3
二、术语解释 3
三、实现限制 3
1. 不支持goal:install deploy 3
2. 不提供官方的Maven仓库镜像 4
3. 不提供全局(通用)Maven settings.xml文件 4
4. Maven构建脚本文件(pom.xml)限制 4
四、可能的问题 4
1. 不支持二方依赖 4
2.无法获取三方依赖 5
3. 非Maven依赖 5
五、解决方法 5
1. 解决二方依赖 5
2. 解决三方依赖 7
3. 解决特殊依赖 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原信息为:
groupIdcom.acem/groupId
artifactIdproject-test/artifactId
version1.0.0/version
所依赖二方jar包:common-service-2.0.0.jar,对应的Maven原信息为:
groupIdmon/groupId
artifactIdcommon-service/artifactId
version2.0.0/version
可common-service为二方应用工程,那么,如果要解决二方依赖的问题,解决的办法是:将common-service工程作为project-test的子模块。
具体操作步骤如下:
首先,将common-service工程目录复制到project-test工程目录(请注意清理svn或者git元信息目录,防治版本控制混乱)
然后,将common-service工程配置成project-test工程的子模块,在project-test工程pom.xml文件添加配置:
...
modules modulecommon-service/module
!--其他子模块信息 --
...
/modules
...
最终,添加依赖管理配置:
dependencyManagement dependencies
文档评论(0)