9

3 modüldüğümü varsayalım: mod1, mod2 ve mod3.Android Studio - Bir alt dizinin içinde modüller nasıl oluşturulur?

[android_root_dir] 
build.gradle # list this file just to make it clear. 
----mod1 
----mod2 
----mod3 

Ama ne istediğim ise:

Normal durumda

, dosya sistemi hiyerarşisi olmalıdır

[android_root_dir] 
build.gradle # list this file just to make it clear. 
----modules 
    ----mod1 
    ----mod2 
    ----mod3 

nasıl Android Studio 1.1.0 bunu yapmak için?

Not: Bu makale bulmak ama işe görünmüyor, yoksa AS önceki sürümlerinde için çalışır, değil 1.1.0: How can I move a module inside a subdirectory?

cevap

12

Bunu yapabilirsiniz:

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

include ':modules:mod1' , ':modules:mod2', ':modules:mod3' tür size çözüm sunar settings.gradle

include ':modules:mod1' , ':modules:mod2', ':modules:mod3' 
+3

. Bu yöntem ... biraz çalışır ... AS "modüller" adıyla sahte ve boş bir modül üretecek ve "modules/modules.iml" üretecektir. Bu modülü AS proje yapısında silersem, AS tekrar otomatik olarak üretecektir. herhangi bir fikir? –

+0

Bu konuyla ilgili saatlerce araştırma yaptım… önemli olan projenin kendisi ... şu anki yöntemleri kullanıyorum: moduleMain, moduleFuncA, moduleFuncB vb. .. –

3

rağmen, AS rahatsız edici boş modül fo üretir senin içinde r modules. Bu getiriyi ele almak için lütfen gradle github repo numaralı telefondan settings.gradle'a bakın. Temel olarak her alt projeyi bir üst düzey olarak içerir ve daha sonra proje dizinini alt dizinin içine yerleştirir. Bu hile ihtiyacınızı mükemmel bir şekilde ele almalıdır.

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() 
} 
+1

Aynı sonuç, içerik ile birlikte 'modules' ara dizininde yeni 'build.gradle' eklenerek elde edilebilir: 'jar.enabled = false; uploadArchives.enabled = false' –

-1

Projem yapı

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

setting.gradle dosya

// 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" 

ben çözmek için settings.gradle içinde tekrar deklaratif kullandı. (Android Studio 3.0), sanırım AS'nin hatası. Bazen AS'yi yeniden başlatmanız gerekir. Geri bildiriminiz için