所以我刚刚检查了一个Android项目,我的同事检查了gradle.xml
在modules
部分设置了实际路径,但使用了$MODULE_DIR$
。当我建立时,Gradle将该路径改为绝对路径。为什么?我如何让Gradle继续使用相对路径?或者应该gradle.xml
不包含在源代码管理中?这些更改也反映到IntellIJ中的.iml
文件中,我认为这些文件是由Gradle根据gradle.xml
生成的。正确?为什么Gradle将模块路径从相对变为绝对?
前:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome"
value="$USER_HOME$/.gradle/wrapper/dists/gradle-1.11-all" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/SubModule" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>
后
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome"
value="$USER_HOME$/.gradle/wrapper/dists/gradle-1.11-all" />
<option name="modules">
<set>
<option value="C:\coding\source\work\ProjectX" />
<option value="C:\coding\source\work\ProjectX\SubModule" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>
有趣。不检查IML文件只适用于Gradle项目,对不对?我正在使用IntelliJ IDEA Ultimate而不是Android Studio,并且我发现该修补程序计划安装IntelliJ的v13.1.3。将回到这个答案,并接受如果升级解决了这个问题。 – Nilzor
我刚刚测试过删除.iml文件,希望在IDEA/Android Studio中加载项目时通过Gradle重新生成.iml文件。那没有发生。我怀疑你没有签入.iml的方法只能起作用,因为你*有*对这些文件进行初始检查。我对吗?另外,你是否在'.idea/gradle.xml'和'.idea/libraries'中检查? – Nilzor
没有。在SCM下绝对没有iml文件...但我使用gradle-wrapper,所以我有gradlew,gradle.bat,目录gradle /,当然build.gradle和gradle.settings在SCM下(但是没有特定于AS) – ben75