Gradle:无法从外部生成脚本配置artifactory
我是gradle的新手,希望从中访问我的artifactory存储库。如果我将所有配置放在一个构建脚本中,构建就会成功。以下是my build.gradle的相关部分:Gradle:无法从外部生成脚本配置artifactory,gradle,artifactory,Gradle,Artifactory,我是gradle的新手,希望从中访问我的artifactory存储库。如果我将所有配置放在一个构建脚本中,构建就会成功。以下是my build.gradle的相关部分: allprojects { apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'artifactory' } // ... buildscript { repositories { maven {
allprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'artifactory'
}
// ...
buildscript {
repositories {
maven {
url 'http://repo.jfrog.org/artifactory/gradle-plugins'
}
maven {
url artifactory_contextUrl + 'plugins-release'
credentials {
username = artifactory_user
password = artifactory_password
}
}
}
dependencies {
classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '2.0.16')
}
}
artifactory {
contextUrl = artifactory_contextUrl
publish {
repository {
repoKey = 'libs-release-local'
username = artifactory_user
password = artifactory_password
maven = true
}
}
resolve {
repository {
repoKey = 'libs-release'
username = artifactory_user
password = artifactory_password
maven = true
}
}
}
dependencies {
// My dependencies ...
}
// Rest of the build script ...
现在,为了更好地组织,我想将artifactory部分提取到一个单独的gradle脚本中。这就是构建出错的地方。非常令人惊讶的是,即使我将build.gradle复制到foo.gradle,并将build.gradle更改为只包含一行,也会出现以下错误
apply from: 'foo.gradle'
错误是
FAILURE: Build failed with an exception.
* Where:
Script '/path/to/my/project/foo.gradle' line: 5
* What went wrong:
A problem occurred evaluating script.
> Plugin with id 'artifactory' not found.
如果这不是一个bug,谁能解释一下gradle的应用于的行为并提出解决方案
谢谢一旦配置了构建脚本,就会解析apply from
部分,因此告诉Gradle在哪里找到具有特定ID的插件为时已晚。您必须将buildscript
部分保留在脚本中,或将其放入:
您还可以使用完全限定的类名在助手脚本中应用插件:
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath "com.adaptc.gradle:nexus-workflow:0.5"
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:2.2.4"
}
}
apply plugin: org.jfrog.gradle.plugin.artifactory.ArtifactoryPublicationsPlugin
apply plugin: com.adaptc.gradle.nexusworkflow.NexusWorkflowPlugin
请注意,如果在类名周围加引号,Gradle将找不到插件,这与插件名通常的做法相同
以下是我如何找到Artifactory插件的类名:
谢天谢地,我下载了插件
我在文件中搜索插件的名称,找到了
artifactory puplish.properties
它包含以下内容:
属性:implementation class=org.jfrog.gradle.plugin.artifactory.ArtifactoryPublicationsPlugin
没有这样的属性文件,所以我四处寻找,直到找到
plugins-gradle-master/nexus-workflow/src/main/groovy/com/adaptc/gradle/nexusworkflow/NexusWorkflowPlugin.groovy
可以使用一个例子来说明如何在init脚本中工作。我试过了,但无法运行init脚本并正确设置。这正是第60.5节所说的。添加了示例。
plugins-gradle-master/nexus-workflow/src/main/groovy/com/adaptc/gradle/nexusworkflow/NexusWorkflowPlugin.groovy