2014-05-20 181 views
1

所以我刚刚检查了一个Android项目,我的同事检查了gradle.xmlmodules部分设置了实际路径,但使用了$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> 

回答

2

有在的IntelliJ bug跟踪系统相关的bug:http://youtrack.jetbrains.com/issue/IDEA-122893#_ga=1.28638463.2110637748.1360838067

根据Release notes of AndroidStudio-0.5.8:来自jet-brain的修复现已包含在AndroidStudio中。

所以,你(和/或您的同事)可能需要更新到AndroidStudio-0.5.8

只是为了分享我的经验:我们从来没有承诺.iml文件,也没有在供应链管理,尤其是任何IDE特定文件使用Android-Studio:从root build.gradle文件进行简单导入足以在AndroidStudio中创建一个运行良好的项目。

+0

有趣。不检查IML文件只适用于Gradle项目,对不对?我正在使用IntelliJ IDEA Ultimate而不是Android Studio,并且我发现该修补程序计划安装IntelliJ的v13.1.3。将回到这个答案,并接受如果升级解决了这个问题。 – Nilzor

+0

我刚刚测试过删除.iml文件,希望在IDEA/Android Studio中加载项目时通过Gradle重新生成.iml文件。那没有发生。我怀疑你没有签入.iml的方法只能起作用,因为你*有*对这些文件进行初始检查。我对吗?另外,你是否在'.idea/gradle.xml'和'.idea/libraries'中检查? – Nilzor

+0

没有。在SCM下绝对没有iml文件...但我使用gradle-wrapper,所以我有gradlew,gradle.bat,目录gradle /,当然build.gradle和gradle.settings在SCM下(但是没有特定于AS) – ben75