导入期间自动附加来源

时间:2015-09-11 10:34:07

标签: android android-studio android-gradle

我有一个包含多个模块的项目,一个模块使用其他模块功能。因此,具有依赖项的模块具有编译依赖项中的jar文件。因此,当我尝试转到源代码时,它会转到jar中的.class文件。相反,我希望它转到依赖模块的.java文件。

一种方法是手动执行AttachSources。

因为,我有多个具有多个依赖关系的模块;

  • 有没有办法在导入过程中通过某种方式执行它,比如在每个模块下都有一个源位置的sourcePath.txt。?

项目结构:

ProjectA:

  • ModuleAA(取决于ModulesAB)
  • ModuleAB(取决于ModulesAC)
  • ModuleAC

以及更多模块。

1 个答案:

答案 0 :(得分:3)

为了访问模块'来自项目的来源,而不是导入jar,你将不得不使用compile project (':module')

例如,如果我必须构建您的结构,它将如下所示:

ProjectA:(在com.example.projecta下)

dependencies {
    ... //Other dependencies(appcompat, jar files...)
    compile project (':moduleaa') //Dependent of moduleAA
    ...
}

ModuleAA:(在com.example.moduleaa下)

dependencies {
    ...
    compile project (':moduleab') //Dependent of moduleAB
    ...
}

ModuleAB (在com.example.moduleab下)

dependencies {
    ...
    compile project (':moduleac') //Dependent of moduleAC
    ...
}

ModuleAC (在com.example.moduleac下)

dependencies {
    ...
}

现在,ProjectA可以访问任何模块及其依赖项。

要在项目和模块的源代码之间导航,可以使用快捷键来显示源代码。您可以在File > Settings > Keymap > Main menu > View > Jump to source ( or Show source)下找到键盘映射。 (通常控制+左键单击,或F12)。

修改

如果您在其他项目中有一个模块,您要导入哪些模块并且能够像当前项目中的模块一样进行修改,则可以使用以下命令修改当前项目的settings.gradle:

include ':module'
project(':module').projectDir = new File("/<path_to_module>/other_project/module")

然后该模块将出现在您当前的项目中。