apereo的CAS SSO项目cas-server包含几百个module,如果设置不当则极有可能build失败。
官方5.x版本Build向导:https://apereo.github.io/cas/developer/Build-Process-5X.html
需要注意的是,5.x版本均使用gradle进行构建。
1.准备环境
JDK 1.8 (CAS 6.x 需要JDK11)
Gradle 4.10.1(项目配置中为4.8)
IDEA 2018.1
2.源码下载
打开项目github地址:https://github.com/apereo/cas/tree/5.3.x
切换分支Branch至5.3.x,直接Dowdload Zip,然后将下载的zip项目解压
当然也可以使用git进行clone
3.环境配置
3.1 IDEA配置
打开IDEA安装目录,修改对应配置文件 idea64.exe.vmoptions(32位则idea.exe.vmoptions)
-Xms1024m
-Xmx8192m
-XX:ReservedCodeCacheSize=512m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-javaagent:E:\Program Files\JetBrains\IntelliJ IDEA 2018.1.3\JetbrainsCrack-3.1-release-enc.jar
以上是自己在build时使用的IDEA配置,当然也可参考官方给的配置:
-server
-Xms2g
-Xmx8g
-XX:NewRatio=3
-Xss16m
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:ConcGCThreads=4
-XX:ReservedCodeCacheSize=840m
-XX:+AlwaysPreTouch
-XX:+TieredCompilation
-XX:+UseCompressedOops
-XX:SoftRefLRUPolicyMSPerMB=50
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-ea
-XX:MaxPermSize=512m
-XX:PermSize=512m
-Xverify:none
配置主要是加大堆内存大小、缓存空间大小及非堆区内存大小。如果不做以上配置,会导致内存直接内存溢出卡死,无法正常build。另外如果自身机器内存不是很大,-Xmx4096m 也是够用的。
3.2 Gradle配置
加大Gradle堆内存大小,开启多线程并行。
3.3 Complier设置
按照官方指引进行以下配置:
配置加大了build进程的堆大小,并行编译独立的module。
3.4 Gradle配置文件
打开项目根目录下的build.gradle文件,找到以下代码部分
git = org.ajoberstar.grgit.Grgit.open(dir: file('.').canonicalPath)
def gitHead = git.head()
currentRevision = gitHead.id
currentAbbreviatedRevision = gitHead.abbreviatedId
这里是从git目录获取当前版本号,但是由于各种原因这里经常拿不到而不能继续Build。
这里直接将其注释,指定版本号:
// git = org.ajoberstar.grgit.Grgit.open(dir: file('.').canonicalPath)
// def gitHead = git.head()
// currentRevision = gitHead.id
// currentAbbreviatedRevision = gitHead.abbreviatedId
currentRevision = "cas-5.3.3"
如果没有梯子,在build.gradle中配置aliyun仓库
maven { url "http://maven.aliyun.com/nexus/content/groups/public/"}
3.5 Lombok插件安装
CAS项目使用了大量Lombok注解,相信大多数开发者都使用了Lombok,这里不进行过多描述。
4.项目导入
导入项目,然后进入漫长的等待吧... 自己build了大概二三十分钟