构建另一个时 Gradle 跳过模块

标签 gradle build.gradle

我正在创建一个应用程序,它基本上由 3 个 JAVA 模块组成:

  • AndroidApp(安卓版本,依赖HTTPServer)
  • HTTPServer(核心服务器功能)
  • HTTPServerStandalone(核心包装,因此可以使用 Java SE 独立启动,依赖于 HTTPServer)

  • 所以 AndroidApp 和 HTTPServerStandalone 之间没有依赖关系。他们不需要彼此。

    现在我遇到了一个问题,因为我无法在没有安装 Android SDK 的情况下构建 HTTPServerStandalone,因为 settings.gradle 包含所有 3 个模块的包含。有没有办法,在构建 HTTPServerStandalone 时如何防止包含 AndroidApp?

    最佳答案

    是的,它可以 - settings.gradle:

    def localProperties = new File("$rootDir", "local.properties")
    if (localProperties.exists()) {
        Properties properties = new Properties()
        localProperties.withInputStream { instr ->
            properties.load(instr)
        }
    
        def sdkDir = properties.getProperty('sdk.dir')
        if (sdkDir != null) {
            def folder = new File(sdkDir);
            if (folder.isDirectory()) {
    
                include ':AndroidApp';
    
            } else {
               println "WARINING: SKIPPING :AndroidApp MISSING '" + sdkDir + "' IS NOT A DIRECTORY";
            }
        } else {
           println "WARINING: SKIPPING :AndroidApp MISSING 'sdk.dir' IN FILE $rootDir/local.properties";
        }
    } else {
        println "WARINING: SKIPPING :AndroidApp MISSING FILE $rootDir/local.properties";
    }
    
    include ':HTTPServerStandalone', ':HTTPServer'
    

    你知道更好的解决方案吗?

    关于构建另一个时 Gradle 跳过模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47424598/

    相关文章:

    java - AppEngine 部署错误 : java. lang.UnsupportedClassVersionError

    gradle - 如何在测试中使用Gradle功能变体依赖项?

    android - 虽然 Android Studio 更新到 v3.3 获取 API 'variant.getAssemble()' 已过时并已替换为 'variant.getAssembleProvider()'

    gradle - 如何在gradle中的所有子项目之前先执行根项目

    java - 带有测试 Spring Boot 的 Gradle fat jar 的 NoClassDefFoundError

    jar - Gradle非托管远程依赖项

    java - 如何在 gradle 中将 jacoco 代码覆盖级别设置为模块

    java - Gradle多项目测试未调用

    gradle - 无法在 groovy 空对象上调用 multip() 方法

    java - 如何在 build.gradle 文件中使用 GitHub secret 或 GitHub 环境变量