2016-11-19 83 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