避免具有多个源根的模块分组

时间:2013-06-03 20:56:46

标签: android intellij-idea

要点:

我希望能够使用“从源滚动”来查找文件系统树中的文件。对于普通模块,这很有效。但是,当我在模块中为某些生成的代码包含一个额外的源根时,IntelliJ会在左窗格中创建一个虚拟模块,其中包含源的副本,“Scroll from Source”有时会在那里导航而不是在文件系统树中导航。

如何添加其他源根目录,使其不会在左窗格中生成虚拟模块条目?

更多详情:

我正在使用IntelliJ 12.1.3和一个包含多个模块的Android项目。大多数IntelliJ模块包括两个源根:一个用于实际源,一个用于Android生成的源。一些模块还包括由外部工具生成的源。这些模块包括第三个源根。

在左侧窗格中,具有附加源根目录的模块在顶级和目录树中显示为虚拟模块条目,其中找到了.iml文件,但只有android生成源的模块才显示在目录树。

虚拟模块条目在“从源滚动”期间导致问题,因为IntelliJ有时会滚动到虚拟模块而不是树中的源位置。

我尝试了群组,但群组没有解决出现在两个地方的文件问题,而且他们进一步模糊了文件系统树。

因为Android gen目录不会导致出现这些虚拟模块,所以必须有一种方法可以说服IntelliJ某些源根目录不那么有趣。但是,在.iml文件中,除了引用不同的路径之外,Android条目和注释处理条目看起来相同。 android源根目录值也出现在android facet下,因为名为GEN_FOLDER_RELATIVE_PATH_APT和GEN_FOLDER_RELATIVE_PATH_AIDL的选项的值是android插件在这里做一些特殊的事情,使其gen文件夹避免触发虚拟模块?

1 个答案:

答案 0 :(得分:1)

在项目面板的顶部有一个可能显示为“Project”的下拉列表。如果你把它改成包裹,你可能会得到你想要的东西。

然而,听起来更像是您对生成的源的位置有疑问。一般来说,依靠IDE来构建项目并不是一个好主意。你最好使用maven和(Maven Android Plugin。这样你就可以更容易地与其他人分享你的代码了(几乎所有值得分享的项目都值得分享).IntelliJ应该选择maven项目描述和“理解”如何构建项目。现在,您要设置插件以将代码生成到“目标”目录中,该目录应存在于项目根目录下,并且IntelliJ的项目/模块配置应默认情况下排除目标目录(当从pom导入项目时。这将确保您不会在项目结构中看到生成的源,但它们应该仍然可供您的应用程序参考。