我在不同位置有一组文件夹。 为了自动化每日更新和构建的过程,我正在编写一个简单的shell脚本,该脚本在文件夹集上进行迭代,对于每个文件夹,它将检测该文件夹是gradle构建类型还是maven构建类型还是ANT构建类型。 / p>
根据文件夹的构建类型,它将调用
gradle clean build
OR
maven install
来自shell脚本中的with。
有没有一种确定的方法可以检测文件夹是否包含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
谢谢。
答案 0 :(得分:1)
根据经验:
build.gradle
(并且经常是settings.gradle
)pom.xml
build.xml
但是这些假设存在一些问题,包括
由于这些原因,CI服务器要求您指定build命令,而不是尝试自动找出它。例如Travis CI,您需要add a .travis.yml to your repository