Walt 发布的文章

背景

项目采用Jenkins+Maven实现自动化部署springboot项目。本地运行正常,但是gitlab提交后,执行自动化部署过程中,出现了如下错误:

[INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/poi/poi-ooxml/3.17/poi-ooxml-3.17.jar
[INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/xmlbeans/xmlbeans/2.6.0/xmlbeans-2.6.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for  
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:14 min
[INFO] Finished at: 2022-03-14T06:17:49Z
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[ERROR] Failed to execute goal on project **-server: Could not resolve dependencies for project *****:jar:1.0-SNAPSHOT: The following artifacts could not be resolved: org.apache.poi:poi-ooxml:jar:3.17, org.apache.xmlbeans:xmlbeans:jar:2.6.0: Could not transfer artifact org.apache.poi:poi-ooxml:jar:3.17 from/to central (https://repo.maven.apache.org/maven2): Transfer failed for https://repo.maven.apache.org/maven2/org/apache/poi/poi-ooxml/3.17/poi-ooxml-3.17.jar: Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.40.215] failed: Connection timed out (Connection timed out) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

这里的描述很清楚,本地找不到poi-ooxml包,去中央仓库下载,然后国内的网络环境下,无法在https://repo.maven.apache.org下载该包。导致了构建失败。

过程及分析

一、确认Jenkins配置是否正确

首先我想到的是maven配置问题,因为我使用的是自己部署的nexus3私库,在Jenkins-管理管理-Managed files中添加了settings.xml文件并在项目中进行了配置使用。反复检查了settings.xml文件,确认没有问题。

<!-- 检查是否添加了私库镜像 -->
  <mirrors>
    <mirror>
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <url>http://私库Ip/nexus/repository/maven-public/</url>
    </mirror>
  </mirrors>

二、nexus配置

后来想到,可能是nexus中配置的代理仓库没有修改成国内镜像。查看后发现也没有问题。nexus中添加了阿里云镜像的代理仓库。

请输入图片描述

并把其放在了靠前的位置。
请输入图片描述

三、pom.xml配置

以上检查无误后,陷入了僵局,这个问题困扰了我一整天。期间我一度想直接在本地拷贝了这个包放到Jenkins的本地仓库中,然后问题依然存在,o(╯□╰)o。
直到后来,无意中查询到, 自定义pom.xml都是继承自super pom,所以maven项目下载一些jar包时,默认会从中央仓库下载 。知道了这点,剩下的就好办了,只要在pom.xml中进行配置,覆盖掉super pom的配置即可。

<!-- pom.xml文件中添加如下配置 -->
 <repositories>
        <repository>
            <id>nexus</id>
            <url>http://nexus.dev.dhdc.com/nexus/repository/maven-public/</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>nexus</id>
            <url>http://nexus.dev.dhdc.com/nexus/repository/maven-public/</url>
        </pluginRepository>
    </pluginRepositories>

背景

因工作需要,在服务器通过docker部署了一个wiki.js服务,当初为了省事,通过docker-compose进行部署,同时把数据库连接信息也以环境变量的方式配置在了docker-compose.yml文件中了。

问题

但是最近公司重新部署了网络,数据库的服务ip地址已经发生了改变,导致wiki不能使用。
容器已经生成,修改compose文件已经没有任何意义,而这个服务已经用了很久,也不可能重新部署。这就需要一种可以动态修改容器环境变量的方式。

解决方案

好在经过查找,找到了,记录一下,以备后用。

// 查看容器id,通过以下命令,列出所有容器,记住需要修改的容器的id。
docker container ls -all

CONTAINER ID  IMAGE   COMMAND       CREATED   STATUS     PORTS   NAMES
c7266ebaf77d      requarks/wiki   "docker-entrypoint.s…"   3 months ago   Exited (137) 40 seconds ago  wiki

// 停止容器
docker stop wiki

// 停止Docker服务
service docker stop

// 修改 /var/lib/docker/containers/ID/config.v2.json 中对应的参数

// 启动Docker服务
service docker start

至此,问题解决。

友情提示

本文为店铺推广文章,其中涉及到的获取方法需要花钱购买,如不符合你需求,请直接关闭。


起因

前几天元旦,发红包的时候,想着换个好看的封面,才发现想要找一个封面太难了。网上各种免费领取的都是得先关注再领取,大部分还都是骗关注的。一些企业发放的要么不好看,要么限时领取,根本抢不到。我就想立马找一个红包封面,花几块钱都可以,可就是找不到。

解决方法

找了好久发现有一些红包封面的店铺,价格也不贵,关键是种类多。为了方便过几天春节继续使用,便代理了一个红包封面的店铺。感兴趣的可以直接扫描看看。
1

介绍

红包封面种类比较多。有上百个红包封面,总能找到你想要的。

  • 价格也不贵,普遍也就三四块钱,特价也就1块钱多点,相对于花半个小时网上找,感觉还不如花钱省事呢。
  • 分类比较合理。有游戏类、祝福封面、二次元封面、新年封面、创意封面、爱情封面等等。
  • 省事,24小时自助下单,发货。无论什么时间,从查找到使用也就一两分钟就完事,即使突然要发红包,也完全不耽误。

截图

1
1
1
1

DSM7.0之后没有了Chat套件

想着安装个IM套件,作为团队协作使用,结果安装网上教程第一步就进行不下去了,套件中心压根没有一个叫做Chat的套件。
后来查阅发现,7.0以后已经把这个套件删了。。。。

手动安装

既然不能在套件中心安装,那就手动安装吧

  1. 下载套件:
    打开连接,选择版本,下载套件,如果使用的是DSM7.0以上的系统,请选择2.3.1-11738及以上的版本。直接选择最后一个“Chat-x86_64-2.3.1-11740.spk”版本就行。

https://archive.synology.com/download/Package/Chat/

  1. 进入群晖套件中心页面,点击右上角的手动安装按。
  2. 选择下载好的套件,下一步,之后点击完成,等待安装即可。

背景

写了个wpf程序,需要在服务器上运行一下,开发的时候使用的net core 3.1,服务器上未安装,安装需要重启电脑,明显不可以。

解决

将wpf打包成自宿主的程序,包含所有运行环境一块打包出来。

打包方法

在项目目录下执行如下命令:

dotnet publish -r win-x64 -c Release --self-contained

这里配置了程序在Windows 64位下运行。

提示如下表示已经生成完成了,直接拷贝

PS F:\test> dotnet publish -r win-x64 -c Release --self-contained
用于 .NET 的 Microsoft (R) 生成引擎版本 17.0.0-preview-21501-01+bbcce1dff
版权所有(C) Microsoft Corporation。保留所有权利。

  正在确定要还原的项目…
  所有项目均是最新的,无法还原。
  你正在使用 .NET 的预览版。请查看 https://aka.ms/dotnet-core-preview
  test -> F:\test\bin\Release\netcoreapp3.1\win-x64\test.dll
  test -> F:\test\bin\Release\netcoreapp3.1\win-x64\publish\
PS F:\test>

拷贝到服务器上,双击打开直接使用即可,无需再安装运行时。