问题
外网搭建好项目迁移到内网后发现用不了,网上修改意见Cannot access nexus-aliyun (http://maven.aliyun.com/nexus/content/...) in offline mode
;'dependencies.dependency.version' for xxx:jar is missing. @ line xx, column xx
一般都是将Maven修改为离线模式但是实际上外网迁到内网实际是本地仓库下载好不需重新下载。
查阅日志以及相关治疗实际上是需要删除本地仓库根目录下的一些文件: .lastUpdated 和 _remote.repositories。
_remote.repositories:需要远程下载因此需要删除这个文件在内网机上。
.lastUpdated:意外波动导致下载失败,等在此下载需要重新找到此文件。
解决方法
写个脚本首先建立个.txt
文件里面内容为:
chcp 65001 > nul
set "REPOSITORY_PATH=%cd%"
echo 正在搜索...
color c
setlocal enabledelayedexpansion
set "cnt_lastupdated=0"
set "cnt_repositories=0"
rem 遍历当前目录下的所有符合条件的文件并删除
dir /s /b "%REPOSITORY_PATH%" > nul
ping -n 2 127.0.0.1 > nul
color a
for /f "delims=" %%F in ('dir /a-d /b /s "%REPOSITORY_PATH%\*.repositories" "%REPOSITORY_PATH%\*.lastUpdated" 2^>nul') do (
echo %%F
if "%%~xF" == ".repositories" set /a cnt_repositories+=1
if "%%~xF" == ".lastUpdated" set /a cnt_lastupdated+=1
del /f /q "%%F"
)
if !cnt_lastupdated! gtr 0 echo .lastUpdated 文件总数:!cnt_lastupdated!
if !cnt_repositories! gtr 0 echo .repositories 文件总数:!cnt_repositories!
color c
color 07
echo 搜索完毕!
if !cnt_lastupdated! equ 0 if !cnt_repositories! equ 0 echo 未找到任何符合条件的文件。
set /a count=10
for /l %%i in (%count%,-1,1) do (
echo 倒计时 %%i 秒,该窗口将在 %%i 秒后关闭。
timeout /t 1 > nul
)
exit
文件另存为.bat
文件放入到本地仓库位置双击运行运行时注意本地仓库备份。
运行后项目可用。