文档中心 > 爱淘宝

构建规范

更新时间:2015/09/18 访问次数:79315

JAE构建规范

 

1.Ant构建方式

a.任务(Task)限制:

由于Ant构建在JAE平台内部构建,为了防止Ant构建脚本在构建物理机器执行高风险的Task,提供以下Task白名单: 点击查看

 

b.构建脚本限制:

Ant构建脚本(build.xml)文件必须存放在应用工程的根目录,并且文件名称必须为“build.xml”

 

c.强制basedir路径限制

由于构建物理机器可能并行执行多个应用的构建任务,为了避免应用间相互影响,也防治恶意程序破坏系统环境,因此,JUAE构建系统将Ant构建脚本中project元素basedir属性值强制修改成当前工程目录的物理路径, 应用自定义属性值被忽略

例如,应用A的物理路径为/home/apps/project-a,其构建脚本文件build.xml定义如下:

<project name="HelloWorld" default="build" basedir="/home/target">
...
</project>

其中,basedir="/home/target"将会被忽略,最终构建在物理路径/home/apps/project-a

 

d.文件操作限制

与强制basedir路径限制的原则一样,限制文件操作的操作。总体而言,凡是文件相关操作的读写路径必须在在应用工程目录或其子目录下,否则,构建操作失败。

例如,应用A的物理路径为/home/apps/project-a,其构建脚本文件build.xml定义如下:

<?xml version="1.0" encoding="UTF-8" ?>
<project name="HelloWorld" default="build" basedir="/home/target">
<property name="src" value="src"/>
<property name="dest" value="/home/target/dest"/>
<property name="hello_jar" value="hello1.jar"/>
<target name="init">
<mkdir dir="${dest}"/>
</target>
...
</project>

在任务中mkdir dir属性指向了${dest},即创建路径为/home/target/dest的目录。明显地,/home/target/dest目录不为/home/apps/project-a的子目录。因此,在线上构建时,提示路径错误。

 

2.Maven构建方式

a.不支持goal:install deploy

由于Maven构建在JAE平台内部构建,多个应用可能在相同机器上面构建,为了防止多个应用工程相互冲突(多个应用groupId、artifactId、version重复),也防止非法源码泄漏(利用groupId、artifactId、version获取源码)

 

b.不提供官方的Maven仓库镜像

目前官方无法提供Maven仓库镜像未来很有可能支持ISV独立Maven独立仓库时,可以解除当前限制。

 

c.不提供全局(通用)Maven settings.xml文件

目前实现不支持全局(通用)Maven settings.xml。ISV如果自行添加私有Maven仓库镜像配置到settings.xml文件中,会导致线下和线上的配置不一致,可能导致应用工程源码线上构建时,无法获取第三方依赖。

 

d.Maven构建脚本文件(pom.xml)限制

Maven构建脚本文件(pom.xml)必须存放在应用工程的根目录下,并且文件名称必须为”pom.xml”

FAQ

关于此文档暂时还没有FAQ
返回
顶部