源码编译 Cas Server 4/5/6/7
源码编译 Cas Server 4/5/6/7
- 1、下载源码
- 2、修改 gradle 下载地址
- 3、指定 JDK 版本
- 4、Gradle 配置仓库下载加速和依赖配置
- 4.1、CAS Server 7.1.3 和 6.6.15
- 4.2、CAS Server 5.3.16
- 4.2.1、根目录 build.gradle
- 4.2.2、编译 cas-server-webapp 报错
- 4.2.4、编译 cas-server-support-duo 或者 cas-server-support-duo-core 报错
- 5、Cas Server 5/6/7 编译命令
- 6、源码编译 Cas Server 4
- 6.1、下载源码
- 6.2、maven 和 jdk 版本
- 6.3、编译命令
1、下载源码
wget -O cas-7.1.3.zip "https://codeload.github.com/apereo/cas/zip/refs/tags/v7.1.3"
# wget -O cas-6.6.15.zip "https://codeload.github.com/apereo/cas/zip/refs/tags/v6.6.15"
# wget -O cas-5.3.16.zip "https://codeload.github.com/apereo/cas/zip/refs/tags/v5.3.16"
unzip cas-7.1.3.zip
2、修改 gradle 下载地址
- 对于 cas 5、6、7
vim gradle/wrapper/gradle-wrapper.properties
将 distributionUrl 修改为腾讯云的源,只改前面的下载地址部分
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.10-bin.zip
3、指定 JDK 版本
cas版本 | jdk版本 | gradle 版本 |
---|---|---|
7.1.3 | jdk 21 | 8.10 |
6.6.15 | 大于等于 jdk 11 | 7.5.1 |
5.3.16 | jdk 1.8 | 4.8 |
4、Gradle 配置仓库下载加速和依赖配置
4.1、CAS Server 7.1.3 和 6.6.15
修改根目录下的 build.gradle 文件,对于 7.1.3 和 6.6.15 修改为以下配置
repositories {gradlePluginPortal()mavenLocal()maven { url 'https://maven.aliyun.com/repository/public/' }maven { url 'https://maven.aliyun.com/repository/jcenter' }maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }maven { url 'https://maven.aliyun.com/repository/spring-plugin' }maven { url 'https://maven.scijava.org/content/repositories/public/' }maven { url "https://plugins.gradle.org/m2/" } // 备用仓库maven { url "https://repo.spring.io/plugins-release" } // 备用仓库
}
如果提示下载 com.github.mmoayyed.ws-wss4j 依赖失败,可以去:https://maven.scijava.org/content/repositories/public/com/github/mmoayyed/ws-wss4j/ 下载
修改根目录下的 settings.gradle
将 https://jitpack.io 修改成 https://maven.scijava.org/content/repositories/public
修改后
4.2、CAS Server 5.3.16
4.2.1、根目录 build.gradle
对于 5.3.16 的 build.gradle 修改以下配置
注释掉 20~23行
并手动指定版本号
ext {publishSnapshots = Boolean.getBoolean("publishSnapshots")publishReleases = Boolean.getBoolean("publishReleases")sonatypeUsername = System.getProperty("sonatypeUsername")sonatypePassword = System.getProperty("sonatypePassword")testCategoryType = System.getProperty("testCategoryType")forceBom = Boolean.getBoolean("forceBom")enableRemoteDebugging = Boolean.getBoolean("enableRemoteDebugging")continuousIntegrationBuild = Boolean.getBoolean("CI") || Boolean.getBoolean("TRAVIS") || Boolean.getBoolean("CONTINUOUS_INTEGRATION")publishingRelease = publishReleases && rootProject.sonatypeUsername != null && rootProject.sonatypePassword != null/*Open the Git repository in the current directory.Get commit id of HEAD.*///git = org.ajoberstar.grgit.Grgit.open(dir: file('.').canonicalPath)//def gitHead = git.head()//currentRevision = gitHead.id//currentAbbreviatedRevision = gitHead.abbreviatedIdcurrentRevision = "5.3.16" currentAbbreviatedRevision = "5.3.16"
}
buildscript.repositories 修改为以下配置
repositories {mavenLocal()maven { url 'https://maven.aliyun.com/repository/public/' }maven { url 'https://maven.aliyun.com/repository/jcenter' }maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }maven { url 'https://maven.aliyun.com/repository/spring-plugin' }maven { url "https://plugins.gradle.org/m2/" } // 备用仓库maven { url "https://repo.spring.io/plugins-release" } // 备用仓库
}
allprojects.repositories 修改为以下配置
repositories {mavenLocal()maven { url 'https://maven.aliyun.com/repository/public/' }maven { url 'https://maven.aliyun.com/repository/jcenter' }maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }maven { url 'https://maven.aliyun.com/repository/spring-plugin' }maven { url "https://plugins.gradle.org/m2/" } // 备用仓库maven { url "https://repo.spring.io/plugins-release" } // 备用仓库
}
4.2.2、编译 cas-server-webapp 报错
修改文件 webapp/gradle/webapp.gradle,指定本地 node
cd /usr/local
wget -O node-v8.11.2-linux-x64.tar.gz https://nodejs.org/dist/v8.11.2/node-v8.11.2-linux-x64.tar.gz
tar -zxvf node-v8.11.2-linux-x64.tar.gz
vim /etc/profile
#Node
export NODE_HOME=/usr/local/node-v8.11.2-linux-x64
export PATH=$NODE_HOME/bin:$PATH
source /etc/profile
node -v
npm -v
#在Jenkins构建脚本的npm install命令前加入以下配置,允许以root身份执行安装
npm config set user 0
npm config set unsafe-perm true
node {version = "${nodeVersion}"nodeModulesDir = project(":webapp").projectDirdownload = false // 禁用自动下载workDir = file("/usr/local/node-v8.11.2-linux-x64")
}
4.2.4、编译 cas-server-support-duo 或者 cas-server-support-duo-core 报错
wget -O duo_client_java-0.2.2.zip https://codeload.github.com/duosecurity/duo_client_java/zip/refs/tags/0.2.2
unzip duo_client_java-0.2.2.zip
cd duo_client_java-0.2.2/duo-client
vim pom.xml
注掉旧的工件和组
<!-- <groupId>com.duosecurity</groupId>-->
<!-- <artifactId>duo-client</artifactId>-->
<!-- <version>0.2.1</version>-->
<groupId>net.unicon.iam</groupId>
<artifactId>duo-client</artifactId>
<version>0.2.2</version>
cd duo_client_java-0.2.2/duo-client
mvn clean install -U -D maven.test.skip=true -D maven.javadoc.skip=true
mvn install:install-file -Dfile=duo_client_java-0.2.2/duo-client/target/duo-client-0.2.2.jar -DgroupId=net.unicon.iam -DartifactId=duo-client -Dversion=0.2.2 -Dpackaging=jar
5、Cas Server 5/6/7 编译命令
# 清除缓存
rm -rf ~/.gradle/caches/
# 停止历史的gradlew进程
./gradlew --stop
# 进入目录
cd cas-7.1.3
# 设置JAVA_HOME
export JAVA_HOME="/usr/local/jdk-21.0.5"
# 查看gradle版本和jdk版本
./gradlew --version -Dorg.gradle.java.home=/usr/local/jdk-21.0.5
# 下载所有依赖
./gradlew --refresh-dependencies dependencies -Dorg.gradle.java.home=/usr/local/jdk-21.0.5
# cas7.1.3编译命令
./gradlew clean build --parallel -x test -x javadoc -x check --build-cache --no-daemon -Dorg.gradle.java.home=/usr/local/jdk-21.0.5
unset JAVA_HOME
构建成功后,war 文件在 webapp/cas-server-webapp/build/libs 目录下
ll webapp/cas-server-webapp/build/libs
6、源码编译 Cas Server 4
由于 Cas Server 4 使用的是 maven,这里单独篇幅介绍
6.1、下载源码
wget -O cas-4.1.10.zip "https://codeload.github.com/apereo/cas/zip/refs/tags/v4.1.10"
unzip cas-4.1.10.zip
6.2、maven 和 jdk 版本
依赖 | 版本 |
---|---|
jdk | 1.8 |
maven | 3.5.3 |
一些依赖报错,则需要手动安装依赖
- org.restlet-2.1.0.jar
wget https://maven.restlet.talend.com/org/restlet/jee/org.restlet/2.1.0/org.restlet-2.1.0.jar
mvn install:install-file -Dfile=org.restlet-2.1.0.jar -DgroupId=org.restlet.jee -DartifactId=org.restlet -Dversion=2.1.0 -Dpackaging=jar
- jcifs-ext-0.9.4.jar
wget https://gitee.com/wxhntmy/jcifs-ext-0.9.4/raw/master/jcifs-ext-0.9.4.jar
mvn install:install-file -Dfile=jcifs-ext-0.9.4.jar -DgroupId=org.samba.jcifs -DartifactId=jcifs-ext -Dversion=0.9.4 -Dpackaging=jar
- Could not find artifact com.hazelcast:hazelcast-code-generator:jar:4.1.10
修改 cas-4.1.10/cas-server-integration-hazelcast/pom.xml 文件,指定 hazelcast 版本
<dependency><groupId>com.hazelcast</groupId><artifactId>hazelcast</artifactId> <version>3.5</version>
</dependency>
<dependency><groupId>com.hazelcast</groupId><artifactId>hazelcast-code-generator</artifactId> <version>3.5</version>
</dependency>
6.3、编译命令
cd cas-4.1.10
export JAVA_HOME="/usr/local/jdk1.8.0_202"
/usr/local/apache-maven-3.5.3/bin/mvn clean install -U -D maven.test.skip=true -D maven.javadoc.skip=true
unset JAVA_HOME