0

概括:

我希望能够使用“从源滚动”在文件系统树中定位文件。对于普通模块,这很好用。但是,当我在模块中包含一些生成的代码的附加源根时,IntelliJ 在左侧窗格中创建一个虚拟模块,其中包含源的副本,并且“从源滚动”有时会导航到那里而不是在文件系统树中。

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

更多细节:

我正在使用带有多个模块的 Android 项目的 IntelliJ 12.1.3。大多数 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 文件夹避免触发虚拟模块?

4

1 回答 1

1

在项目面板的顶部有一个下拉菜单,可能显示“项目”。如果您将其更改为包,您可能会得到您正在寻找的东西。

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

于 2013-06-05T05:29:55.337 回答