build 脚本

这个是因为项目依赖太多,每次都需要手动按顺序build,所以写了一个自动化的脚本,读取文件,按顺序build项目。

goto start
	= Author: pz27063
    = Read project path from project_list.txt
	= Maven command : mvn clean install -Dmaven.test.skip=true
    = Double click this bat and see detail logs build.log.
:start
@echo off
color f2
mode con: lines=500

set MAVEN_BUILD_COMMAND=C:\work\apache-maven-3.3.9\bin\mvn.cmd clean install -Dmaven.test.skip=true
::set MAVEN_BUILD_COMMAND=mvn clean install -Dmaven.test.skip=true

set CURRENT_BATCH_PATH=%cd%
set BUILD_LOG=%CURRENT_BATCH_PATH%\build.log
set PROJECT_LIST=%CURRENT_BATCH_PATH%\project_list.txt
set READLINE=10

call :readlist 

pause

GOTO:EOF

:readlist
	echo PROJECT_LIST
	for /f "tokens=*" %%c in (%PROJECT_LIST%) do (
		set str=%%c
		setlocal enabledelayedexpansion
		if /i "!str:~,1!" neq "#" (
			SETLOCAL ENABLEDELAYEDEXPANSION
			set project_path=%%c
			call :maven_build !project_path!,%BUILD_LOG%
		)
	)
GOTO:EOF

:maven_build
	echo ..........Delete build successful log..........
	del /f /s /q %2
	echo ..........%1 Building..........
	cd %1
	call %MAVEN_BUILD_COMMAND% >>%2
	echo ..........Build finished..........

	set log_line=0
	for /f "tokens=1 delims=*" %%i in (%2) do echo %%i >>nul&&set /a log_line+=1
	set /a last=%log_line%-%READLINE%
	more +%last% "%2"
	
	find "BUILD FAILURE" %2
	IF %ERRORLEVEL% EQU 0 (
		set failture_log_total = 0
		for /f "tokens=*" %%c in (%2) do (
			echo %%c
		)
		echo %1 build failed. Please check.
		call :rebuild %1,%2
	)
GOTO:EOF

:rebuild
	set /p YN=Type Y to re-build, any key to exit(Case-insensitive):
	if /i "%YN%"=="Y" (
		call :maven_build %1,%2
	)else (
		PAUSE
		EXIT
	)
GOTO:EOF

posted on 2020-06-11 13:30  长方形  阅读(234)  评论(0)    收藏  举报

导航