El proyecto maven empaqueta manualmente el jar y lo carga en el script bat del almacén central, y maven empaqueta y carga manualmente el script bat del almacén central

1. Descripción del problema

Tengo un proyecto aquí con muchos módulos, y están desmantelados en varios proyectos y empaquetados en IDEA. Cada proyecto debe abrirse y empaquetarse o bajo cmd. Sin mencionar el problema, lleva tiempo. De esta manera, empaquetar Todos los proyectos tardan al menos media hora en cargarse en el almacén central. Dado que algunos de mis módulos deben empaquetarse manualmente por separado, no se pueden cargar directamente y deben procesarse. Siempre es muy problemático se lanzan, así que quiero escribir una publicación. Herramienta con la que lidiar, acabo de comenzar a pensar en todo el complemento maven, este método también es problemático, cada proyecto aún debe introducirse, simplemente use el procesamiento por lotes bat directamente, es simple y no necesita ningún entorno, y luego descubrió que bat es realmente difícil de usar. No hay muchos recursos en Internet, especialmente variables. ¿Qué tipo de variables retrasadas están realmente borrachas? Findstr no admite la extracción regular. Se realizará con grep.exe más adelante, por lo que habrá muchos códigos repetitivos. El primero La versión es compartida. Esta versión es relativamente básica y se puede expandir por sí misma. La última versión tiene muchas funciones, por lo que no es fácil de compartir. Las funciones son similares.

Dos, la solución

El código completo es el siguiente:

@echo off
chcp 65001
cls
title          sonatype手动处理程序
echo           欢迎使用sonatype处理程序
echo ------------------请选择----------------
echo ------------------1.清除文件----------
echo ------------------2.复制jar----------
echo ------------------3.修改pom----------
echo ------------------4.打包文件----------
echo ------------------5.上传上传----------
echo ------------------6.打包上传----------
echo ------------------0.退出----------------
set /p a=请输入你的选择(0-6):
echo 你输入的数据是:%a%
setlocal enabledelayedexpansion
set filename=""
set targetJar=""
set currentPath=%~dp0
if %a%==0 (
 goto et
)
if %a%==1 (
 goto clean_file
)
if %a%==2 (
 goto copy_jar
)
if %a%==3 (
 goto edit_pom
)
if %a%==4 (
 goto build_file
)
if %a%==5 (
 goto upload_file
)

if %a%==6 (
 goto build_upload
)



:copy_jar
    ::set targetPath=%currentPath%Plugins
    ::set targetPath=..\target\
	set "regexp_jar=-[0-9].[0-9].[0-9].jar"
	::删除当前目录下的旧jar
	del *.asc*
	del *-javadoc.jar*
	del *-sources.jar*
	for /R %targetPath% %%f in (*.jar) do ( 
		set "line=%%f"
		setlocal enabledelayedexpansion	
		echo "%%f"|findstr /r /C:"%regexp_jar%" >nul 2>&1
		if ERRORLEVEL 1 (
			rem echo "%%f"
		) else (
			del /q "%%f"
			echo 删除旧版本%%f
		)
		endlocal
	)
	for %%I in ("%CD%\..") do set targetPath=%%~fI
	set targetPath=%targetPath%\target\
	echo %targetPath%
	for /R %targetPath% %%f in (*.jar) do ( 
		set "line=%%f"
		::setlocal enabledelayedexpansion	
		echo "%%f"|findstr /r /C:"%regexp_jar%" >nul 2>&1
		if ERRORLEVEL 1 (
			rem echo "%%f"
		) else (
			set targetJar=%%f
		)
		endlocal
	)
	echo 复制新版本%targetJar%
	copy /y %targetJar% %currentPath%
	pause
	goto end
:edit_pom
    set "regexp_jar=-[0-9].[0-9].[0-9].jar"
	set "regexp_version=[0-9].[0-9].[0-9]"
	for %%I in ("%CD%\..") do set targetPath=%%~fI
	set targetPath=%targetPath%\target\
	echo %targetPath%
	for /R %targetPath% %%f in (*.jar) do ( 
		set "line=%%f"
		echo "%%f"|findstr /r /C:"%regexp_jar%" >nul 2>&1
		if ERRORLEVEL 1 (
			rem echo "%%f"
		) else (
			set targetJar=%%f
		)
	)
	for /R %currentPath% %%f in (*.jar) do ( 
		set "line=%%f"
		echo "%%f"|findstr /r /C:"%regexp_jar%" >nul 2>&1
		if ERRORLEVEL 1 (
			rem echo "%%f"
		) else (
			set currentJar=%%f
		)
	)	
	if not exist grep.exe (
        rem 下载grep到当前路径
		mshta http://bathome.net/s/hta/index.html Tools.get('grep')
    )
	echo %targetJar%|grep -o -w "%regexp_version%" >temp.txt
	set /p newJarVersion= < temp.txt
	echo 最新jar版本 %newJarVersion%
	del temp.txt
	
	echo %currentJar%|grep -o -w "%regexp_version%" >temp.txt
	set /p oldJarVersion= < temp.txt
	echo 当前jar版本 %oldJarVersion%
	del temp.txt
	
	(for /f "delims=" %%i in ('dir /b /s /a-d *.pom') do (
	    set pomname=%%~ni
		set pomfile=%%~ni%%~xi
	))
	echo 替换pom文件%pomfile%版本号
	for %%i in (test.txt) do set file=%%~fi
	for /f "delims=" %%i in ('type %pomfile%') do (
		set str=%%i
		set "str=!str:%oldJarVersion%=%newJarVersion%!"
		echo !str!>>$
	)
	set "stre=%pomfile%"
	set "stre=!stre:%oldJarVersion%=%newJarVersion%!"
	echo 替换文件%stre%
	move %pomfile% %pomfile%.bak
	move $ %stre%
	pause
:clean_file
	del *.asc*
	del *-javadoc.jar*
	del *-sources.jar*
	goto end
:build_file
    echo 开始打包jar
	(for /f "delims=" %%i in ('dir /b /s /a-d *.jar') do (
		set filename=%%~ni
	))
	echo %filename%
	echo README文件判断
	if not exist README (
        rem 创建README
        echo=>README
		echo README 文件不存在,已创建该文件!
    ) else (
        echo README 文件已存在,无需创建!
    )
	jar -cvf %filename%-javadoc.jar README
	jar -cvf %filename%-sources.jar README
	gpg -ab %filename%-javadoc.jar
	gpg -ab %filename%-sources.jar
	gpg -ab %filename%.pom
	gpg -ab %filename%.jar
	::jar -cvf bundle.jar %filename%*
	pause
	goto end
:upload_file
    echo 开始上传jar包
	(for /f "delims=" %%i in ('dir /b /s /a-d *.jar') do (
		set filename=%%~ni
	))	
	echo 上传%filename%中
	call mvn org.apache.maven.plugins:maven-gpg-plugin:1.5:sign-and-deploy-file -Durl=https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=ossrh -DpomFile=%filename%.pom -Dfile=%filename%.jar
	call mvn org.apache.maven.plugins:maven-gpg-plugin:1.5:sign-and-deploy-file -Durl=https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=ossrh -DpomFile=%filename%.pom -Dfile=%filename%-sources.jar -Dclassifier=sources
	call mvn org.apache.maven.plugins:maven-gpg-plugin:1.5:sign-and-deploy-file -Durl=https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=ossrh -DpomFile=%filename%.pom -Dfile=%filename%-javadoc.jar -Dclassifier=javadoc	
	pause
	goto end
:et
 exit
:build_upload
	(for /f "delims=" %%i in ('dir /b /s /a-d *.jar') do (
		set filename=%%~ni
	))
	echo %filename%
	echo README文件判断
	if not exist README (
        rem 创建README
        echo=>README
		echo README 文件不存在,已创建该文件!
    ) else (
        echo README 文件已存在,无需创建!
    )
	jar -cvf %filename%-javadoc.jar README
	jar -cvf %filename%-sources.jar README
	gpg -ab %filename%-javadoc.jar
	gpg -ab %filename%-sources.jar
	gpg -ab %filename%.pom
	gpg -ab %filename%.jar
	::jar -cvf bundle.jar %filename%*
	call mvn org.apache.maven.plugins:maven-gpg-plugin:1.5:sign-and-deploy-file -Durl=https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=ossrh -DpomFile=%filename%.pom -Dfile=%filename%.jar
	call mvn org.apache.maven.plugins:maven-gpg-plugin:1.5:sign-and-deploy-file -Durl=https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=ossrh -DpomFile=%filename%.pom -Dfile=%filename%-sources.jar -Dclassifier=sources
	call mvn org.apache.maven.plugins:maven-gpg-plugin:1.5:sign-and-deploy-file -Durl=https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ -DrepositoryId=ossrh -DpomFile=%filename%.pom -Dfile=%filename%-javadoc.jar -Dclassifier=javadoc	
	pause
	goto end
:end 
    call "sonatype.bat"

Supongo que te gusta

Origin blog.csdn.net/mashangzhifu/article/details/123520960
Recomendado
Clasificación