gradle 初始化脚本无法应用人工插件
gradle init script can't apply artifactory plugin
我正在尝试将构建逻辑卸载到 gradle 初始化脚本中,该脚本包含在自定义 gradle 包装器中。这似乎很有希望。我需要做的一件事是在配置之前应用 artifactory 插件,而下面的代码在 build.gradle 中工作正常,当代码转移到初始化脚本时它找不到插件。
build.gradle:
buildscript{
Properties properties = new Properties()
properties.load(new File(gradle.getGradleUserHomeDir(), 'gradle.properties').newDataInputStream())
repositories {
maven {
url properties.artifactory_contextUrl + '/gradle-plugins-virtual'
credentials {
username = properties.artifactory_user
password = properties.artifactory_password
}
}
}
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.17.2"
}
}
apply plugin: "com.jfrog.artifactory"
在初始化脚本中几乎是一样的:
initscript{
Properties properties = new Properties()
properties.load(new File(getGradleUserHomeDir(), 'gradle.properties').newDataInputStream())
repositories {
maven {
url properties.artifactory_contextUrl + '/gradle-plugins-virtual'
credentials {
username = properties.artifactory_user
password = properties.artifactory_password
}
}
}
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.17.2"
}
}
apply plugin: "com.jfrog.artifactory"
但我通过这次尝试得到了 Plugin with id 'com.jfrog.artifactory' not found.
。
我也试过做一个init plugin,但是我的plugin功力不强,好像也失败了。
我尝试将 apply plugin 行从 init 脚本移动到 build.gradle 但也失败了,表明它可能是依赖项解析。我该如何进一步调试?
我进行了构建扫描,看来插件 jar 没问题。
org.jfrog.buildinfo:build-info-extractor-gradle:4.17.2
commons-io:commons-io:2.7
commons-lang:commons-lang:2.4
commons-logging:commons-logging:1.1.1
1.2
org.apache.ivy:ivy:2.2.0
org.jfrog.buildinfo:build-info-extractor:2.19.2
感谢任何帮助、意见和建议。
咆哮:gradle 文档中的示例太少了。
对于 gradle 初始化脚本,您必须使用插件的完全限定 class 名称而不是 id。
像这样:
apply plugin: org.jfrog.gradle.plugin.artifactory.ArtifactoryPlugin
我正在尝试将构建逻辑卸载到 gradle 初始化脚本中,该脚本包含在自定义 gradle 包装器中。这似乎很有希望。我需要做的一件事是在配置之前应用 artifactory 插件,而下面的代码在 build.gradle 中工作正常,当代码转移到初始化脚本时它找不到插件。
build.gradle:
buildscript{
Properties properties = new Properties()
properties.load(new File(gradle.getGradleUserHomeDir(), 'gradle.properties').newDataInputStream())
repositories {
maven {
url properties.artifactory_contextUrl + '/gradle-plugins-virtual'
credentials {
username = properties.artifactory_user
password = properties.artifactory_password
}
}
}
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.17.2"
}
}
apply plugin: "com.jfrog.artifactory"
在初始化脚本中几乎是一样的:
initscript{
Properties properties = new Properties()
properties.load(new File(getGradleUserHomeDir(), 'gradle.properties').newDataInputStream())
repositories {
maven {
url properties.artifactory_contextUrl + '/gradle-plugins-virtual'
credentials {
username = properties.artifactory_user
password = properties.artifactory_password
}
}
}
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.17.2"
}
}
apply plugin: "com.jfrog.artifactory"
但我通过这次尝试得到了 Plugin with id 'com.jfrog.artifactory' not found.
。
我也试过做一个init plugin,但是我的plugin功力不强,好像也失败了。
我尝试将 apply plugin 行从 init 脚本移动到 build.gradle 但也失败了,表明它可能是依赖项解析。我该如何进一步调试?
我进行了构建扫描,看来插件 jar 没问题。
org.jfrog.buildinfo:build-info-extractor-gradle:4.17.2
commons-io:commons-io:2.7
commons-lang:commons-lang:2.4
commons-logging:commons-logging:1.1.1
1.2
org.apache.ivy:ivy:2.2.0
org.jfrog.buildinfo:build-info-extractor:2.19.2
感谢任何帮助、意见和建议。
咆哮:gradle 文档中的示例太少了。
对于 gradle 初始化脚本,您必须使用插件的完全限定 class 名称而不是 id。 像这样:
apply plugin: org.jfrog.gradle.plugin.artifactory.ArtifactoryPlugin