mirror of https://github.com/apache/maven.git
[MNG-5889] .mvn directory should be picked when using --file
This commit is contained in:
parent
19d5b9dfa1
commit
f8ab2a650f
|
@ -121,7 +121,7 @@ fi
|
|||
# first directory with .mvn subdirectory is considered project base directory
|
||||
find_maven_basedir() {
|
||||
(
|
||||
basedir="`pwd`"
|
||||
basedir=`find_file_argument_basedir "$@"`
|
||||
wdir="`pwd`"
|
||||
while [ "$wdir" != '/' ] ; do
|
||||
if [ -d "$wdir"/.mvn ] ; then
|
||||
|
@ -134,6 +134,33 @@ find_maven_basedir() {
|
|||
)
|
||||
}
|
||||
|
||||
find_file_argument_basedir() {
|
||||
(
|
||||
basedir="`pwd`"
|
||||
|
||||
found_file_switch=0
|
||||
for arg in "$@"; do
|
||||
if [ ${found_file_switch} -eq 1 ]; then
|
||||
if [ -f ${arg} ]; then
|
||||
basedir=$(dirname $(readlink -f "${arg}"))
|
||||
if [ ! -d ${basedir} ]; then
|
||||
echo "Directory ${basedir} extracted from the -f/--file command-line argument ${arg} does not exist" >&2
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "POM file ${arg} specified with the -f/--file command line argument does not exist" >&2
|
||||
exit 1
|
||||
fi
|
||||
break
|
||||
fi
|
||||
if [ "$arg" = "-f" -o "$arg" = "--file" ]; then
|
||||
found_file_switch=1
|
||||
fi
|
||||
done
|
||||
echo "${basedir}"
|
||||
)
|
||||
}
|
||||
|
||||
# concatenates all lines of a file
|
||||
concat_lines() {
|
||||
if [ -f "$1" ]; then
|
||||
|
@ -141,7 +168,7 @@ concat_lines() {
|
|||
fi
|
||||
}
|
||||
|
||||
MAVEN_PROJECTBASEDIR="${MAVEN_BASEDIR:-`find_maven_basedir`}"
|
||||
MAVEN_PROJECTBASEDIR="${MAVEN_BASEDIR:-`find_maven_basedir "$@"`}"
|
||||
MAVEN_OPTS="`concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config"` $MAVEN_OPTS"
|
||||
|
||||
# For Cygwin, switch project base directory path to Windows format before
|
||||
|
|
|
@ -83,26 +83,76 @@ set MAVEN_CMD_LINE_ARGS=%*
|
|||
@REM Find the project basedir, i.e., the directory that contains the folder ".mvn".
|
||||
@REM Fallback to current working directory if not found.
|
||||
|
||||
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
|
||||
set "MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%"
|
||||
if not "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
|
||||
|
||||
set "EXEC_DIR=%CD%"
|
||||
set "WDIR=%EXEC_DIR%"
|
||||
|
||||
@REM Look for the --file switch and start the search for the .mvn directory from the specified
|
||||
@REM POM location, if supplied.
|
||||
|
||||
set FILE_ARG=
|
||||
:arg_loop
|
||||
if "%~1" == "-f" (
|
||||
set "FILE_ARG=%~2"
|
||||
shift
|
||||
goto process_file_arg
|
||||
)
|
||||
if "%~1" == "--file" (
|
||||
set "FILE_ARG=%~2"
|
||||
shift
|
||||
goto process_file_arg
|
||||
)
|
||||
@REM If none of the above, skip the argument
|
||||
shift
|
||||
if not "%~1" == "" (
|
||||
goto arg_loop
|
||||
) else (
|
||||
goto findBaseDir
|
||||
)
|
||||
|
||||
:process_file_arg
|
||||
if "%FILE_ARG%" == "" (
|
||||
goto findBaseDir
|
||||
)
|
||||
if not exist "%FILE_ARG%" (
|
||||
echo POM file %FILE_ARG% specified the -f/--file command-line argument does not exist >&2
|
||||
goto error
|
||||
)
|
||||
call :get_directory_from_file %FILE_ARG%
|
||||
if not exist "%POM_DIR%" (
|
||||
echo Directory %POM_DIR% extracted from the -f/--file command-line argument %FILE_ARG% does not exist >&2
|
||||
goto error
|
||||
)
|
||||
set "WDIR=%POM_DIR%"
|
||||
goto findBaseDir
|
||||
|
||||
:get_directory_from_file
|
||||
set "POM_DIR=%~dp1"
|
||||
:stripPomDir
|
||||
if not "_%POM_DIR:~-1%"=="_\" goto pomDirStripped
|
||||
set "POM_DIR=%POM_DIR:~0,-1%"
|
||||
goto stripPomDir
|
||||
:pomDirStripped
|
||||
exit /b
|
||||
|
||||
:findBaseDir
|
||||
cd /d "%WDIR%"
|
||||
:findBaseDirLoop
|
||||
if exist "%WDIR%\.mvn" goto baseDirFound
|
||||
cd ..
|
||||
IF "%WDIR%"=="%CD%" goto baseDirNotFound
|
||||
set "WDIR=%CD%"
|
||||
goto findBaseDir
|
||||
goto findBaseDirLoop
|
||||
|
||||
:baseDirFound
|
||||
set "MAVEN_PROJECTBASEDIR=%WDIR%"
|
||||
cd "%EXEC_DIR%"
|
||||
cd /d "%EXEC_DIR%"
|
||||
goto endDetectBaseDir
|
||||
|
||||
:baseDirNotFound
|
||||
if "_%EXEC_DIR:~-1%"=="_\" set EXEC_DIR=%EXEC_DIR:~0,-1%
|
||||
if "_%EXEC_DIR:~-1%"=="_\" set "EXEC_DIR=%EXEC_DIR:~0,-1%"
|
||||
set "MAVEN_PROJECTBASEDIR=%EXEC_DIR%"
|
||||
cd "%EXEC_DIR%"
|
||||
|
||||
|
|
Loading…
Reference in New Issue