Android Studio - How to make modules inside a subdirectory?

前端 未结 3 1043
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-02-02 09:23

Suppose that I had 3 modules: mod1, mod2 and mod3.

In normal case, the file system hierarchy should be:

[android_root_dir]
build.gradle # list this file          


        
相关标签:
3条回答
  • 2021-02-02 10:10

    Though include ':modules:mod1' , ':modules:mod2', ':modules:mod3' kind of gives you the solution, the AS annoyingly generates an empty module for modules. To address this gotcha, please refer to the settings.gradle on the gradle github repo. It basically includes every subproject as a top level one and then sets its project directory to be inside the subdirectory. This trick should perfectly address your need.

    include 'mod1'
    include 'mod2'
    ...
    include 'modX'
    rootProject.name = 'gradle'
    rootProject.children.each {project ->
        String projectDirName = "modules/$project.name"
        project.projectDir = new File(settingsDir, projectDirName)
        assert project.projectDir.isDirectory()
        assert project.buildFile.isFile()
    }
    
    0 讨论(0)
  • 2021-02-02 10:16

    You can do it:

    root
      build.gradle
      settings.gradle
      modules
        mod1
          build.gradle
        mod2
          build.gradle
        mod3
          build.gradle
    

    In your settings.gradle

    include ':modules:mod1' , ':modules:mod2', ':modules:mod3'
    
    0 讨论(0)
  • 2021-02-02 10:18

    My project struct

    Coding
       app
       push-dir
         coding-push
         push-xiaomi
       setting.gradle
    

    setting.gradle file

    // need repeat declarative, i think it's bug
    include ':app'
    include ':coding-push'
    include ':push-dir:coding-push'
    include ":push-xiaomi"
    include ":push-dir:push-xiaomi"
    

    I used repeat declarative in settings.gradle to solve. (Android Studio 3.0), I think it's AS's bug. Sometimes need restart AS.

    0 讨论(0)
提交回复
热议问题