2014-05-20 214 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