3

有一個奇怪的問題,我不確定它的來源。Intellij IDEA在gradle-wrapper.properties文件中用'ı'的ASCII覆蓋'i'字符

我使用Intellij IDEA(2016 3.3)和Gradle(v3.3)。我使用Windows 10,土耳其語操作系統。

Gradle有一個包裝屬性文件。 (./gradle/wrapper/gradle-wrapper.properties)

該文件,這是由搖籃生成的內容:

distributionBase=GRADLE_USER_HOME 
distributionPath=wrapper/dists 
zipStoreBase=GRADLE_USER_HOME 
zipStorePath=wrapper/dists 
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-bin.zip 

當我打開的IntelliJ一個搖籃工程的最後一行文件變成這樣:

distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-b\u0131n.zip 

的IntelliJ覆蓋binb\u0131n。我查了一下\u0131指的是什麼,它是'ı'字母的ASCII碼。

而且由於URL被破壞,我無法構建項目。

該文件中有很多'i'字母(不提及整個項目),但不知何故,Intellij將'bin'中的特定'i'變成'i'的ASCI。

我有這個問題很久,但是當我嘗試手動更正字母時,Intellij第一次堅持覆蓋它。這次唯一的區別是我創建了一個包含多個模塊的項目,這意味着有多個gradle-wrapper.properties文件。

你們有沒有人知道爲什麼以及如何解決這個問題?

+0

「bın」是一個常見的土耳其語單詞,並且是某種拼寫糾正活動? – CodeCaster

+0

@CodeCaster好點,但不,'bın'在土耳其語中不是一個有意義的單詞。但是'ı'是土耳其的一封信。 –

+0

我在IntelliJ IDEA問題跟蹤器中報告了一個錯誤(https://youtrack.jetbrains.com/issue/IDEA-168145)。如果你可以附上一個示例項目來重現它,這將有所幫助。如果你[切換到UTF-8無處不在]有幫助嗎(http://blogs.jetbrains.com/idea/2013/03/use-the-utf-8-luke-file-encodings-in-intellij-idea/ )?如果您將[-Dfile.encoding = UTF-8'和'-Duser.language = en'添加到[.vmoptions](https://intellij-support.jetbrains.com/hc/articles/206544869),會有幫助嗎? – CrazyCoder

回答

4

經過一番研究,我找到了bug的起源,它不是Intellij IDEA,而是Gradle。在這裏

@Input 
    public String getDistributionUrl() { 
     if (distributionUrl != null) { 
      return distributionUrl; 
     } else if (gradleVersion != null) { 
      return locator.getDistributionFor(gradleVersion, distributionType.name().toLowerCase()).toString(); 
     } else { 
      return null; 
     } 
    } 

https://github.com/gradle/gradle/blob/master/subprojects/build-init/src/main/groovy/org/gradle/api/tasks/wrapper/Wrapper.java#L314

toLowerCase()方法使用我的語言環境(TR-TR),所以 「BIN」 .toLowerCase的輸出()是 「賓」。

我在Gradle-dev Google小組中添加了一個issue並提出了一個解決方案。

1

在build.gradle中,添加;

task wrapper(type: Wrapper) { 
    gradleVersion = '3.3' 
    distributionUrl = "https://services.gradle.org/distributions/gradle-${gradleVersion}-all.zip" 
} 

幫我解決了。

檢查here瞭解更多信息。

+0

感謝您的回答,但那不再是必要的。我提到的這個錯誤已經被我修復了,修復程序現在包含在最新版本的Gradle中。 –