源码编译 Cas Server 4/5/6/7
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.abbreviatedId
currentRevision = "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").projectDir
download = 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


2849

被折叠的 条评论
为什么被折叠?



