成都专业网站制作多少钱网站开发业务

张小明 2026/1/9 7:19:40
成都专业网站制作多少钱,网站开发业务,vs2010网站开发与发布,渭南市建设局网站一、通用优化项 1.缓存错误 问题#xff1a; 原配置缓存了 **/target/。这是构建产物#xff0c;不仅体积大导致上传/下载慢#xff0c;而且会导致 Maven 不重新编译代码#xff0c;可能引发脏构建。 缺失#xff1a; 没有缓存 Maven 依赖库 ( .m2/repository ) 。这意味着…一、通用优化项1.缓存错误问题原配置缓存了**/target/。这是构建产物不仅体积大导致上传/下载慢而且会导致 Maven 不重新编译代码可能引发脏构建。缺失没有缓存Maven依赖库 (.m2/repository)。这意味着每次流水线运行都要从互联网重新下载几百 MB 的 jar 包这是最耗时的步骤。cache: paths: - **/target/优化建议cache: paths: - .m2/repository/ # 缓存 Maven 依赖这是提速的关键 - .sonar/cache/ # 缓存 Sonar 插件2.任务冗余与 Artifacts优化2.1任务冗余问题build和sonarqube分成了两个阶段。应该将能整合的阶段合并避免不必要的传输build阶段打包后将巨大的target目录上传到 GitLab 服务器。sonarqube阶段再下载这个巨大的target目录启动一个新的容器重新配置环境。优化SonarQube 扫描本身就需要编译类。将构建Build和扫描Sonar合并为一个任务既省去了上传/下载产物的时间也省去了启动第二个 Docker 容器的时间。# 一条命令完成清理 - 编译 - 测试 - 扫描 # -Dmaven.test.failure.ignorefalse 确保单元测试失败会中断流水线 - mvn clean compile test sonar:sonar -Dsonar.projectKeytest -Dsonar.host.urlhttp://172.168.20.10:9000/ -Dsonar.logintest --no-snapshot-updates : *common_rules第一部分命令详解可忽略clean(清理)动作删除项目根目录下的target文件夹。目的确保本次构建是“全新”的防止上一次构建留下的旧.class文件干扰本次结果避免“脏构建”。compile(编译)动作把src/main/java下的源代码编译成.class字节码文件。目的Java 代码必须编译后才能运行SonarQube 也需要分析编译后的字节码来提高准确度。test(单元测试)动作编译并运行src/test/java下的单元测试用例。目的确保新写的代码没有把旧功能改坏。关键点运行测试会生成“覆盖率报告”jacoco.execSonarQube 需要读取这个报告来告诉你“代码覆盖率”是多少。sonar:sonar(扫描)动作启动 SonarScanner 插件。目的它会读取源代码、读取第2步生成的.class文件、读取第3步生成的测试报告进行静态代码分析找 Bug、漏洞、代码异味最后把结果打包上传给 SonarQube 服务器。第二部分配置参数-D 传参-Dsonar.projectKeytest含义项目唯一标识。解释在 SonarQube 网页端每个项目都有一个唯一的 ID。你需要把它改成你项目真实的 Key否则 SonarQube 会认为这是一个新项目或者找不到项目。-Dsonar.host.urlhttp://172.168.20.10:9000/含义服务器地址。解释告诉插件把扫描结果发送给哪台服务器。请确保流水线运行的容器能访问通这个内网 IP。-Dsonar.logintest含义身份认证 Token。解释这是登录 SonarQube 的“钥匙”。安全建议直接把 Token 写在代码里硬编码是不安全的。通常建议在 GitLab CI/CD 的设置里配置一个变量$SONAR_TOKEN然后这里写成-Dsonar.login$SONAR_TOKEN。--no-snapshot-updates含义不要检查快照更新。解释如果你的项目依赖了一些公司内部开发的 SNAPSHOT 版本 jar 包比如common-utils-1.0-SNAPSHOT。不加这个参数Maven 默认每天或者每次构建都会去私服 Nexus/Artifactory 询问“在这个 jar 包有没有新版本呀”这很浪费时间。加上这个参数告诉 Maven“别问了本地有啥就用啥除非我强制更新”。这能显著加快构建速度。2.2Artifacts存储优化问题保留整个target目录非常不建议这样做除非你有特殊需求未自动清理Artifacts产物导致存储膨胀占用大量硬盘空间。优化新增expire_in: 1 week参数构建频繁的可以配置1 dayartifacts: paths: - **/target/*.jar # 只保留 jar 包 # - **/target/*.war # 如果是 war 包项目 expire_in: 1 week # 建议稍微久一点方便一周内回滚3.克隆优化问题有些项目历史版本众多且文件较大导致拉取代码非常慢除了 SonarQube 需要完整的 git 历史外其他步骤不需要。优化定义全局变量默认浅克隆加快拉取速度workflow: rules: - if: $CI_PIPELINE_SOURCE merge_request_event # 定义全局变量和锚点 variables: # 默认浅克隆加快拉取速度Sonar 任务中会覆盖此设置 GIT_DEPTH: 1二、特殊优化项1.缓存策略优化缓存策略三种写法写法 A全局共享最推荐用于 Maven 依赖cache: key: maven-global-cache # 共享缓存池的名称 paths: - .m2/repository/优点速度最快。dev分支刚下载的包master分支立马能用。节省磁盘空间。缺点如果有两个流水线同时运行并试图写入缓存可能会冲突但在 Maven 下载依赖场景下通常不是大问题。写法 B按分支隔离最推荐用于 node_modules 或构建产物基于分支cache: key: $CI_COMMIT_REF_SLUG # 这是一个变量代表当前分支名如 master, dev paths: - node_modules/含义master分支有自己名为master的箱子。dev分支有自己名为dev的箱子。优点绝对安全分支之间互不干扰。缺点很慢。当你新建一个feature-login分支时因为它是全新的 key它没有任何缓存必须从头下载所有依赖。写法 C基于分支文件智能缓存cache: key: files: - pom.xml # 只有当 pom.xml 文件内容变了才生成新的 key paths: - .m2/repository/含义只要pom.xml没变大家就一直用同一个缓存。一旦你修改了依赖系统会自动生成一个新的干净缓存。总结与建议针对Java/Maven 项目1.推荐保持的配置写法 Akey: maven-sonar-cache理由Java 的 jar 包是跨分支通用的。spring-boot-starter-web在 dev 分支和 master 分支是一模一样的东西。没必要隔离大家共用一个库下载一次全员加速。2.特性功能如果你使用的是 写法 B基于分支GitLab 确实有一个高级特性叫fallback_keys可以实现“如果 feature 分支没缓存就去借用 master 的”。3.前端构建扫描优化核心区别对比差异点后端 (Java)前端 (Vue/React)基础镜像maven:3.6-jdk-11node:16 (或 14/18)构建工具mvn (Maven)npm 或 yarn依赖缓存.m2/repositorynode_modules编译命令mvn compilenpm run build产物形式.jar 包dist/ 文件夹 (HTML/CSS/JS)扫描工具Maven 的 Sonar 插件sonar-scanner (需要独立安装)部分示例# --- 前端核心任务 --- frontend-job: stage: build-and-scan #注意请根据你项目的实际 node 版本修改推荐 node:14 或 node:16 image: node:16 tags: - edfs - api - prod cache: key: frontend-node-modules # 全局共享缓存 paths: - node_modules/ # 缓存依赖包 (提速核心) - .npm/ # 缓存 npm 缓存数据 - .sonar/cache/ # 缓存 sonar 插件 script: - node -v - npm -v # 1. 设置淘宝/腾讯镜像源 (极大提升 npm install 速度) - npm config set registry https://registry.npmmirror.com # 2. 安装依赖 (如果缓存里有这一步会飞快) - npm install # 3. 编译打包 - npm run build # 4. 安装 Sonar 扫描器并执行扫描 # 前端不像 Maven 自带插件需要临时安装一个扫描器工具 - npm install -g sonarqube-scanner - sonar-scanner -Dsonar.projectKey前端项目的Key_注意修改 -Dsonar.host.urlhttp://172.16.100.90:9000/ -Dsonar.loginsqp_fda99b2a2149ed3665069ca5d739b5c9755c9930 -Dsonar.sourcessrc -Dsonar.exclusions**/node_modules/**,**/dist/** : *common_rules artifacts: paths: - dist/ # 前端通常保留 dist 目录用于部署 Nginx expire_in: 1 day前端扫描必须加这个参数-Dsonar.exclusions/node_modules/,/dist/如果不加SonarQube 会去扫描node_modules里成千上万个第三方库的文件导致扫描时间无限拉长可能跑 1 个小时。报告里出现几万个不属于你的 Bug。服务器卡死。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

上海网站建设制作百橙免费合作加工厂

重新定义个人知识管理:DailyNotes如何改变你的记录方式 【免费下载链接】DailyNotes App for taking notes and tracking tasks on a daily basis 项目地址: https://gitcode.com/gh_mirrors/da/DailyNotes 在信息爆炸的时代,如何高效地组织和记录…

张小明 2026/1/8 19:17:14 网站建设

连云港做网站制作首选公司沧源网站建设

文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言 🌞博主介绍:✌全网粉丝15W,CSDN特邀作者、211毕业、高级全…

张小明 2026/1/8 19:14:25 网站建设

阿里巴巴做网站接单几率黑科技涨粉app

使用 Asterisk 实现 VoIP 通信 1. Asterisk 简介 Asterisk 是一个功能完备、免费且开源的基于 Linux 的 IP PBX 电话系统。它具备商业 PBX 解决方案所能想象到的所有功能,如呼叫保持、转接、自定义拨号计划等。Asterisk 具有高度可配置性,其源代码可供使用,并能移植到许多…

张小明 2026/1/8 19:14:15 网站建设

做兼职上哪个网站普洱网站建设优化

以 AI 为先的客服模式优势显著:全天候服务、多语言支持、大幅节省时间,以及为客户提供快速高效的问题解决方案。但在每一次出色的 AI 驱动客服体验背后,都有一个无名英雄:知识管理。 一套全面、结构清晰的知识管理系统&#xff0…

张小明 2026/1/8 19:14:18 网站建设

成功备案的网站增加域名wordpress提请审批

isset($array[key]) 与 array_key_exists(key, $array) 在 PHP 中都用于检测数组中是否存在某个键,但它们在语义、性能和对 null 值的处理上存在关键差异。 一、核心行为差异:对 null 的处理 表达式$array [key > null]$array []isset($array[key]…

张小明 2026/1/7 19:37:17 网站建设