玩转Linux Shell编程(九)、gradlew脚本分析

320 阅读1分钟
  1. Linux Shell和基本指令
  2. Bash shell语法
  3. 正则表达式
  4. 文本处理之grep
  5. 文本处理之sed
  6. 文本处理之awk
  7. Text GUI编程
  8. Tomcat启动脚本分析
  9. gradlew脚本分析

前言

gradle的脚本代码不多,其中的逻辑主要还是通过gradle\wrapper\gradle-wrapper.jar这个jar完成,同tomcat一样,gradle脚本完成的功能也是信息收集,然后调用java启动gradle-wrapper.jar

但其实也没有东西可说,直接看最后两句。

eval "set -- $(
        printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
        xargs -n1 |
        sed ' s~[^-[:alnum:]+,./:=@_]~\&~g; ' |
        tr '\n' ' '
    )" '"$@"'

exec "$JAVACMD" "$@"

第一句是在原本参数前面追加一些字符,这些字符会通过如下流程调整。

printf格式化--->xargs调整最大参数数量为1--->sed替换--->tr将所有换行替换为空格

结果会追加到$@前面。

接着下面的exec "$JAVACMD" "$@"调用java命令去执行。

参数大概如下所示。

-Xmx64ma-Xms64ma -Dorg.gradle.appname=gradlew -classpath /home/HouXinLin/project/java/CoolDesktop/gradle/wrapper/gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain