gpt4 book ai didi

shell - 识别文件夹的构建类型

转载 作者:行者123 更新时间:2023-12-03 05:06:40 24 4
gpt4 key购买 nike

我在不同位置有一组文件夹。
为了自动化每日更新和构建的过程,我正在编写一个简单的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

谢谢。

最佳答案

根据经验:

  • Gradle项目将有一个build.gradle(通常是settings.gradle)
  • Maven项目将具有一个pom.xml
  • Ant项目将具有一个build.xml

  • 但是这些假设存在一些问题,包括
  • 全部3个选项可让您在命令行上指定构建文件名(因此,构建文件的名称可能与上面的名称不同)
  • 我研究过同时具有pom.xml和build.gradle的项目(项目可以同时在maven和gradle中构建,而从maven过渡到gradle)
  • 我研究过具有pom.xml和build.xml的Maven项目(Maven调用ant)
  • 许多构建需要传递额外的命令行参数(例如,配置文件和/或属性)
  • 并非所有Gradle项目都具有“构建”任务
  • 并非所有的 Ant 构建都会有一个“构建”目标

  • 由于这些原因,CI服务器要求您指定build命令,而不是尝试自动找出它。例如Travis CI需要您 add a .travis.yml to your repository

    关于shell - 识别文件夹的构建类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56845446/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com