所以我剛剛檢查了一個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