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”