2016-11-19 161 views
1

爲了避免混亂我的項目的頂層目錄我希望gradle wrapper JAR能夠放在子目錄中,例如, infra。我要的是這樣的:定義Gradle Wrapper的路徑

root 
L .infra 
    L gradle 
     L wrapper 
      L gradle-wrapper.jar 
      L gradle-wrapper.properties 

我希望archiveBasedistributionBase會得到我的存在,但即使暴力破解這些設置,我還是結了gradle在頂層。

configure(rootProject) { 

    task wrapper(type: Wrapper) { 
     description = 'Generates gradlew and gradlew.bat scripts' 
     gradleVersion = '3.2' 
     archiveBase = Wrapper.PathBase.PROJECT 
     archivePath = ".infra/" 
     distributionBase = Wrapper.PathBase.PROJECT 
     distributionPath = ".infra/" 
    } 

} 

我在做什麼錯?

+1

自定義目錄佈局的一個缺點是其他人不會那麼容易找到他們的方式。 – Henry

+0

我同意,但據我瞭解,'gradle'文件夾不包含任何必須直接與之交互的內容。 – Nicolai

回答

2

這些路徑將被設置在gradle/wrapper/gradle-wrapper.properties中。

distributionBase=PROJECT 
distributionPath=infra/ <---- 
zipStoreBase=PROJECT 
zipStorePath=infra/ <---- 

您可以通過以下屬性設置路徑包裝腳本罐子

jarFile = "${project.projectDir}/.infra/gradle-wrapper.jar" // archive 
scriptFile = "${project.projectDir}/.infra/gradlew" // wrapper script 
+0

但我不希望文件在'gradle/wrapper'中,我希望它在'.infra/gradle/wrapper'中開始。 – Nicolai

+0

我已經更新了我的答案。請看一看。 – mallaudin

+1

太好了,謝謝! :) – Nicolai