【发布时间】:2014-01-09 18:09:29
【问题描述】:
我正在尝试将现有项目从 ant 转移到 gradle。我正在使用 Intellij 13,并且通过删除 iml 文件,我设法让一个模块在 gradle 下运行。但是,它坚持编写一个名称与目录名称而不是模块名称匹配的 iml 文件。
我认识到,对于在 IDE 和版本从上层传下来的大公司中单独工作或在单个团队中工作的人来说,这可能不是问题。然而,这个项目涉及来自几家公司的各种承包商,他们都提供自己的 IDE。 Intellij 的许可模式使得将 IDE 提供给外部承包商变得不切实际,因为大多数工作都是在场外完成的,一旦您提供许可密钥,就无法收回或取消授权。
由于升级 Intellij 不是免费的,几乎不可能同时协调所有人进行升级,因此我使用基于文件的项目格式,一个名为 ourproject.ij12.ipr1 的项目文件和另一个名为 ourproject.ij13.ipr 的项目文件和 iml 文件用于目录foo中的模块是foo.ij12.iml和foo.ij13.iml
这很好用,并且政策是每个人都可以在 14 出来之前从 12 下车,这样我们就不会获得无限数量的版本,但我们也不必在纳秒内同步我们的升级要么。
不幸的是,一旦我尝试在 intellij 的 foo 目录中使用 build.gradle,它就会写入 foo.iml,这完全违反了上述约定。此外,它添加了另一个模块(无需询问),这会导致同一目录中的两个模块,并且 ide 不会让您更改任何一个,因为同一目录中的两个模块是错误的。
谁能告诉我在使用 gradle 时如何影响 Intellij 为 iml 文件编写的文件名?显然,除非我对 symlinks 和 ant.symlinks 任务非常详细,否则有单独的目录名称是行不通的,如果有人尝试在 Windows 上本地运行它,那将无法正常工作。
编辑:由于人们似乎习惯于删除他们不接受的答案,让我澄清一下。我知道 gradle idea eclipse 插件。我不是在寻求 IDE 不可知论的指南。我发现 IDE 设置中有一些有价值的东西,并希望使用相同的 IDE 与其他人共享它们(其中“相同”包括版本,不希望跨版本共享,但一次不止一个版本)。
更具体地说,我正在寻找以下之一:
- 允许我控制 iml 文件的文件名的配置或技巧
- 另一种维护两个版本的 ide 文件的方法,即不太拜占庭式。
- 来自参与 SO 的 JetBrains 人员之一的确认,不再有办法通过 IDEA 实现我的目标。
EDIT2: 涉及 gradle 生成文件的解决方案将不起作用。 Intellij 13 更改文件名以匹配目录名而不是模块名,这是问题的根源。我需要一个解决方案来说服 Intellij 不要那样做。 在升级到 13 之前我没有任何问题。
【问题讨论】:
-
所有好东西,但似乎都没有解决我的实际问题(除非我错过了什么)。
标签: java ant intellij-idea gradle