NAS - 群晖NAS安装Jenkins

Jenkins大家都不陌生,Java开发的持续集成工具,今天简单记录一下在群晖NAS上安装Jenkins的整个过程。

首先在群晖中打开Docker,点击注册表,注册表里有很多已上传的镜像下载:

up-50c3c3dcaaa689ee37455d47d64893f792e.png

下载上图标红的镜像到本地,大家可以看到其实第一个镜像写的是官方镜像,但是第一个镜像版本过于滞后,在安装插件时很多会失败,第二个镜像更新一些,我个人使用的感觉还比较方便,选择latest下载即可。

下载完成后,在左侧“映像”标签中找到刚才下载的镜像,点击启动开始启动镜像。如下图,需要点击“高级设置”进行配置。

20180623152976088750572.png

如下图,在原有的ip地址后,增加端口号,方便访问:

2018062315297614213021.png

然后在“端口设置”标签中,设置对应的外部访问端口,如下图:

[Incubating] Problems report is available at: file:///mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/build/reports/problems/problems-report.html FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':module_core-presentation:bundleUpway-devDebugAar'. > Error while evaluating property 'hasLocalAarDeps' of task ':module_core-presentation:bundleUpway-devDebugAar'. > Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting AAR. Previous versions of the Android Gradle Plugin produce broken AARs in this case too (despite not throwing this error). The following direct local .aar file dependencies of the :module_core-presentation project caused this error: /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/Android-AliyunFaceGuard-10057.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/IDOCR_PubSDK_Android-1.0.0.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/idv-identitybase-sdk-1.3.1.1.intl.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/idv-identityblink-sdk-1.3.1.1.intl.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/idv-identitycrypto-1.0.5.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/idv-identityface-1.3.1.1.intl.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/idv-identitymnn-1.3.1.1.intl.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/idv-identitynfc-1.3.1.1.intl.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/idv-identityocr-1.3.1.1.intl.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/idv-identityocrservice-1.3.1.1.intl.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/idv-identityplatform-1.3.1.1.intl.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/idv-identityquality-sdk-1.3.1.1.intl.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/idv-identityservice-sdk-1.3.1.1.intl.aar, /mnt/nas-k8s/jenkins-1/test/.jenkins/workspace/JRTrader/module_core-presentation/libs/tygerservice-1.0.0.240823100656.aar * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.13/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 2m 36s 324 actionable tasks: 297 executed, 27 up-to-date Build step 'Invoke Gradle script' changed build result to FAILURE Build step 'Invoke Gradle script' marked build as failure Finished: FAILURE
10-14
<think>首先,用户的问题是:“我想解决在构建AAR时,使用直接本地.aar文件依赖导致构建失败的问题”。用户提供了几个引用,我需要参考这些引用来回答问题。 关键引用: - [^1]:构建AAR时,不支持直接本地.aar文件依赖,会导致AAR损坏。 - [^2]:类似的信息,强调旧版本可能没有错误提示,但文件损坏。 - [^3]:给出了解决方案:要么使用implementation project(':module'),要么使用本地Maven仓库(例如publishToMavenLocal)。 - [^4]:提到了博客文章,可能提供更多细节。 - [^5]:描述了具体场景,但相关度较低。 我的系统指令: - 所有行内数学表达式用$...$。 - 独立公式用$$...$$。 - 使用中文回答。 - 生成相关问题。 - 引用末尾添加引用标识。 - 回答结构清晰,逐步解决问题。 用户的需求非常具体:解决构建AAR时直接本地.aar文件依赖导致的构建失败问题。 基于引用[^3],解决方案有两个: 1. 使用implementation project(':module')而不是直接依赖.aar文件。 2. 使用本地Maven仓库:先将.aar发布到本地Maven,然后依赖它。 回答步骤: 1. **确认问题**:解释为什么会出现这个错误。 2. **提供解决方案**:给出具体的步骤。 - 方案1:改为模块依赖。 - 方案2:使用Maven本地仓库。 3. **详细步骤**:提供代码示例和命令。 4. **引用**:在末尾自然地添加引用标识。 5. **生成相关问题**:在最后添加相关问题。 确保语言中文: - 回答整个用中文。 生成相关问题: - 基于主题,如为什么Gradle禁止这个?如何发布到Maven仓库?等等。 结构: - 开头简要解释问题。 - 逐步给出解决方案。 - 代码块用于示例(如Gradle配置)。 - 结尾添加相关问题。 </think>### 解决构建AAR时直接本地.aar文件依赖导致的构建失败问题 在Android开发中,使用Gradle构建Android Archive (AAR)时,如果直接依赖本地.aar文件(例如在`build.gradle`中添加`implementation files('path/to/local.aar')`),会导致构建失败并报错:“Direct local .aar file dependencies are not supported when building an AAR”。这是因为Gradle无法将本地.aar文件中的类和资源正确打包到最终的AAR输出中,从而导致文件损坏[^1][^2]。旧版本的Android Gradle插件可能不会抛出明确错误,但生成的AAR仍然无效。 以下是两种可靠的解决方案,我将逐步解释如何实施。这些方案基于最佳实践和引用信息[^3],确保构建过程顺利可靠。 #### 方案1: 改为模块依赖(推荐) 如果本地.aar文件是另一个模块的输出,最佳做法是将它作为Gradle项目模块导入,而不是直接依赖文件。这能确保资源被正确打包。 1. **步骤1: 将.aar文件转换为模块** - 在项目中创建一个新模块(例如名为`:library_core`)。 - 将本地.aar文件的内容解压或重构为该模块的源代码。 - 在项目的`settings.gradle`文件中包含该模块: ```groovy include ':library_core' ``` 2. **步骤2: 修改依赖配置** - 在需要依赖的模块(如`app`或另一个AAR模块)的`build.gradle`文件中,替换直接文件依赖为模块依赖: ```groovy dependencies { // 替换 implementation files('test.aar') 为: implementation project(':library_core') } ``` - 这告诉Gradle在构建时处理模块资源,避免打包问题[^3]。 3. **优点**: 简单、无需外部工具,适用于多模块项目。缺点是如果.aar文件来自外部来源,可能需要重构。 #### 方案2: 使用本地Maven仓库 如果无法重构模块(例如.aar文件是第三方库),可以先将.aar发布到本地Maven仓库,再从仓库依赖。这模拟了远程仓库的依赖机制。 1. **步骤1: 发布.aar文件到本地Maven** - 在项目的`build.gradle`中添加Maven发布插件: ```groovy plugins { id 'maven-publish' } ``` - 配置发布任务(假设.aar文件路径为`libs/test.aar`): ```groovy publishing { publications { aar(MavenPublication) { groupId = 'com.example' artifactId = 'test' version = '1.0' artifact source: file('libs/test.aar') } } } ``` - 运行Gradle命令发布到本地仓库: ```bash ./gradlew publishToMavenLocal ``` 这会将.aar文件安装到本地Maven目录(通常是`~/.m2/repository`)[^3]。 2. **步骤2: 引用Maven依赖** - 在依赖模块的`build.gradle`中,添加对本地Maven仓库的引用: ```groovy repositories { mavenLocal() // 添加本地仓库 } dependencies { // 替换 implementation files('test.aar') 为: implementation 'com.example:test:1.0@aar' } ``` - 确保`groupId`, `artifactId`, 和`version`与发布配置一致。 3. **优点**: 无需修改.aar文件结构,支持多项目共享。缺点是初次设置稍复杂,需维护版本号。 #### 其他注意事项 - **版本兼容性**: 确保使用较新的Android Gradle插件(建议7.0+),旧版本可能隐藏错误但仍生成损坏文件[^2]。 - **资源冲突**: 如果.aar文件包含Android资源,方案1和方案2都能自动处理资源合并;而直接文件依赖会导致资源丢失。 - **错误调试**: 构建失败时可检查Gradle日志,常见错误包括缺失类或资源引用。更多细节可参考外部资源[^4]。 通过以上方案,您可以有效避免构建失败问题。如果问题持续,建议检查项目结构是否一致或升级Gradle版本[^3][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿福Chris

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值