平台默认会通过pom.xml来识别源码项目为Java Maven项目。
默认Maven项目构建命令如下
mvn -DskipTests clean dependency:list install
在此步骤中,你需要提供一个可用的Java Maven源码程序用来部署在Rainbond平台上,此应用程序至少需要满足如下条件:
mvn install -pl <modulename> -am
pom.xml
文件SpringBoot项目打包方式推荐使用 jar 包方式 非SpringBoot项目打包方式推荐使用 war 包方式
如果项目未定义Procfile文件,平台默认会根据识别项目类型生成默认Procfile。
web: java $JAVA_OPTS -jar ./webapp-runner.jar --port $PORT target/*.war
web: java -Dserver.port=$PORT $JAVA_OPTS -jar target/*.jar
上述是默认Procfile,如果需要扩展更多启动参数,可以自定义Procfile。
当前Rainbond支持OpenJDK如下版本为:
1.6.0_27
1.7.0_95
1.8.0_74
1.9-latest
10.0.2
11.0.1
平台默认版本使用1.8
。若需要使用其他版本的OpenJDK,可以通过在源码根目录下添加system.properties
文件来设定java.runtime.version
的值来指定所需版本的JDK。
# system.properties 目前Rainbond能识别的版本值为11,10,1.9,1.8,1.7,1.6
java.runtime.version=1.8
平台目前也支持OracleJDK,但此特性需要在平台里启用才会生效。
默认不内置提供OracleJDK下载,需要在设置里启用OracleJDK后配置相关OracleJDK下载地址。
OracleJDK下载地址格式要求: http://<web服务URL>/jdk-8u201-linux-x64.tar.gz
Rainbond默认的推荐Maven版本为3.3.1
,支持如下版本: 3.0.5
, 3.1.1
, 3.2.5
, 3.3.1
, 3.3.9
.
如果你的源码根目录定义了mvnw
,将使用此脚本启动Maven进程。
与Java设置指定版本一致,即通过system.properties
文件来设定maven.version
的值来指定所需版本的Maven.
maven.version=3.3.1
如果指定了Maven版本,则会忽略mvnw
如果Maven项目打包成war包,则需要配置Web服务支持。
通过web服务(tomcat或者jetty)将war包运行起来,即通过java -jar ./webapp-runner.jar ./*.war
或者java -jar ./jetty-runner.jar ./*.war
方式运行.
目前可以通过构建源设置web服务版本或者源码根目录定义webserver
文件
tomcat7,tomcat8,tomcat85,tomcat9,jetty7,jetty9
webapp-runner-7.0.91.0.jar
webapp-runner-8.0.52.0.jar
,webapp-runner-8.5.38.0.jar
webapp-runner-9.0.16.0.jar
jetty-runner-7.5.4.v20111024.jar
,jetty-runner-9.4.0.v20161208.jar
具体对应关系如下:
web服务支持 | web服务版本 | 自定义Procfile中jar文件名 |
---|---|---|
tomcat7 | webapp-runner-7.0.91.0.jar | webapp-runner.jar |
tomcat8 | webapp-runner-8.0.52.0.jar | webapp-runner.jar |
tomcat85 (默认) | webapp-runner-8.5.38.0.jar | webapp-runner.jar |
tomcat9 | webapp-runner-9.0.16.0.jar | webapp-runner.jar |
jetty7 | jetty-runner-7.5.4.v20111024.jar | jetty-runner.jar |
jetty9 | jetty-runner-9.4.0.v20161208.jar | jetty-runner.jar |
在构建高级设置或构建源处启用高级构建特性
环境变量 | 默认值 | 说明 |
---|---|---|
BUILD_MAVEN_MIRROR_DISABLE | 默认是启用Maven Mirror | |
BUILD_MAVEN_MIRROR_OF | * | |
BUILD_MAVEN_MIRROR_URL | maven.goodrain.me | 平台默认Mirror地址 |
环境变量 | 默认值 | 说明 |
---|---|---|
BUILD_MAVEN_CUSTOM_OPTS | -DskipTests |
Maven构建参数 |
BUILD_MAVEN_CUSTOM_GOALS | clean dependency:list install |
Maven构建参数 |
BUILD_MAVEN_SETTINGS_URL | 默认为空Maven配置地址 | |
BUILD_MAVEN_JAVA_OPTS | -Xmx1024m |
默认 |
如果编译成war包,运行时默认会将war文件解压至/app/target/
目录下,不支持通过添加配置文件的方式到war解压路径下,否则会导致应用无法正常启动
示例https://github.com/goodrain/java-maven-demo是Spring Boot项目。
自定义的Procfile为
web: java $JAVA_OPTS -jar target/java-maven-demo-0.0.1.jar
如果可以访问管理节点,可以在管理节点测试是否可以正常源码构建
git clone https://github.com/goodrain/java-maven-demo.git
cd java-maven-demo
grctl buildtest