我在不同位置有一组文件夹。
为了自动化每日更新和构建的过程,我正在编写一个简单的shell脚本,该脚本在文件夹集上进行迭代,对于每个文件夹,它将检测文件夹是gradle构建类型还是maven构建类型或ANT构建类型。
根据文件夹的构建类型,它将调用
gradle clean build
要么
maven install
在shell脚本中使用。
有没有确定的方法可以检测文件夹是否包含gradle build或maven build语义?
像如果文件夹包含pom.xml,则它必须是Maven构建。
我确实知道可以选择除pom.xml之外的其他文件名。
这是我所拥有的
if [["$FOLDER_BUILD_TYPE" == "GRADLE"]]; then
cd FOLDER_TO_RUN_BUILD_COMMAND
echo -e "\t\t\t\t ${GREEN} Running 'gradle build' in $FOLDER_TO_RUN_BUILD_COMMAND ${RESET}"
gradle build | indent
elif [["$FOLDER_BUILD_TYPE" == "MAVEN"]]; then
cd FOLDER_TO_RUN_BUILD_COMMAND
echo -e "\t\t\t\t ${GREEN} Running 'mvn install' in $FOLDER_TO_RUN_BUILD_COMMAND ${RESET}"
mvn install | indent
elif [["$FOLDER_BUILD_TYPE" == "ANT"]]; then
cd FOLDER_TO_RUN_BUILD_COMMAND
echo -e "\t\t\t\t ${GREEN} Running 'ant build' in $FOLDER_TO_RUN_BUILD_COMMAND ${RESET}"
ant build | indent
else
echo -e "\t\t\t\t ${GREEN} Ignoring UNKNOWN build type in $FOLDER_TO_RUN_BUILD_COMMAND ${RESET}"
fi
谢谢。
最佳答案
根据经验:
build.gradle
(通常是settings.gradle
)pom.xml
build.xml
但是这些假设存在一些问题,包括
由于这些原因,CI服务器要求您指定build命令,而不是尝试自动找出它。例如Travis CI需要您add a .travis.yml to your repository
关于shell - 识别文件夹的构建类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56845446/