我正在尝试为代码样式添加sherter gradle插件。我想在预提交的脚本文件中运行此插件。
我在gradle中添加了sherter,
var time1 = moment();
var time2 = moment().add(10,'minutes')
time2.diff(time1,'minutes') // 10
time1.diff(time2,'minutes') // -10
我的预提交文件在一个名为“脚本”的目录中。在预提交文件中,如果我添加了这样的行
repositories {
jcenter()
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath 'gradle.plugin.com.github.sherter.google-java-format:google-java-format-gradle-plugin:0.6'
}
apply plugin: 'com.github.sherter.google-java-format'
它在那里失败。当我转到项目根目录并运行相同的命令时,它正在工作。为什么会这样呢?是否必须链接到gradle文件。
注意:Gradle文件是可执行文件,可以从项目根目录正常运行,但是从预提交文件甚至在终端中,如果我转到“ scripts”文件夹,则verifyGJF不会运行。
答案 0 :(得分:1)
之所以会这样,是因为gradlew实际上是项目目录根目录下的脚本(请参见下面的文件夹层次结构)。
gradlew
/scripts
pre-commit-script
/src
从./gradlew {task}
文件运行pre-commit-script
会指示它在同一目录(这里是gradlew
)中寻找/scripts
。
如果您试图从子目录内部调用gradlew
,则需要使用相对路径../gradlew verifyGJF
来访问它。
希望对您有帮助