文章摘要
Unity安卓项目的依赖包主要包括Unity包(manifest.json管理)、Plugins目录文件(.dll/.aar等)和Gradle依赖(build.gradle)。Jenkins流水线通过检查manifest.json和Plugins目录自动获取依赖,Unity和Gradle在构建时会自动处理包安装。Unity包依赖由manifest.json定义,Plugins文件随代码拉取,Gradle依赖在打包时下载。常见问题包括网络访问和私有包配置,可通过检查这三个关键文件了解具体依赖内容。整个流程实现了自动化依赖管理,无需手动干预。
1. Unity安卓项目的依赖包有哪些?
Unity项目的依赖主要分为两类:
a) Unity包(Packages)
- 通过
Packages/manifest.json
管理,类似npm的package.json。 - 依赖内容包括Unity官方包、第三方包(如Addressables、Cinemachine等)。
- 也可以引用本地包或Git包。
b) 插件/库(Plugins)
- 直接放在
Assets/Plugins/
目录下,可能包含 .dll、.aar、.jar、.so 等文件。 - 这些通常是SDK、原生库、第三方Unity插件(如Firebase、Admob等)。
c) Gradle依赖(Android专用)
- Unity导出安卓工程后,
build.gradle
里可能有额外的依赖(如Google Play服务、第三方SDK)。 - 这些依赖通过Gradle自动下载。
2. Jenkins流水线如何“知道”Unity项目的依赖包?
1)manifest.json 是Unity包依赖的“清单”
- 路径:
YourUnityProject/Packages/manifest.json
- 内容示例:
{ "dependencies": { "com.unity.textmeshpro": "3.0.6", "com.unity.addressables": "1.20.5", "com.company.custompackage": "https://github.com/company/custompackage.git" } }
- Jenkins拉代码后,可以直接读取这个文件,知道需要哪些Unity包。
2)Assets/Plugins/ 目录下的内容
- 这里的文件就是项目直接依赖的原生库或第三方插件。
- Jenkins拉代码时,这些文件会一并拉下来。
3)Gradle依赖
- 如果你用Unity的“Export Project”功能导出安卓工程,
build.gradle
里会有类似:dependencies { implementation 'com.google.android.gms:play-services-ads:21.0.0' implementation fileTree(dir: 'libs', include: ['*.jar']) }
- Jenkins在构建安卓包时,Gradle会自动下载这些依赖。
3. Jenkins流水线如何“安装”这些依赖?
a) Unity包依赖
- Jenkins拉代码后,执行Unity命令行构建时,Unity会自动根据
manifest.json
下载缺失的包到Library/PackageCache/
。 - 你无需手动执行“安装依赖”命令,Unity会自动处理。
b) Plugins目录
- 这些文件本身就是依赖,拉代码时已包含,无需额外安装。
c) Gradle依赖
- Jenkins在执行安卓打包(通常是
./gradlew assembleRelease
)时,Gradle会自动下载依赖到本地缓存(~/.gradle/caches
)。
4. Jenkins流水线示例(伪代码)
pipeline {
agent any
stages {
stage('拉取代码') {
steps {
checkout scm
}
}
stage('Unity打包') {
steps {
// Unity自动处理manifest.json依赖
sh '/Applications/Unity/Hub/Editor/2021.3.0f1/Unity -batchmode -projectPath . -executeMethod BuildScript.BuildAndroid -quit'
}
}
stage('导出安卓工程并用Gradle打包') {
steps {
// 假设你导出了安卓工程
dir('ExportedAndroidProject') {
sh './gradlew assembleRelease'
}
}
}
}
}
5. 如何“知道”依赖包具体有哪些?
- Unity包依赖:看
Packages/manifest.json
,所有包都在dependencies
字段里。 - Plugins依赖:看
Assets/Plugins/
目录下的内容。 - Gradle依赖:看导出安卓工程后的
build.gradle
文件。
6. 常见问题
- Unity包下载失败:通常是网络问题,Jenkins构建机要能访问Unity包管理服务器。
- Gradle依赖下载慢:可以配置国内Gradle镜像。
- 私有包/插件:需要配置好访问权限(如Git Token、私有包源等)。
7. 总结
- Unity安卓项目的依赖主要体现在
manifest.json
、Assets/Plugins/
和build.gradle
。 - Jenkins流水线拉代码后,Unity和Gradle会自动处理依赖安装。
- 你可以通过查看上述文件,明确项目依赖包的具体内容。