mrz*_*iak 4 groovy gradle gradle-plugin
我正在创建gradle自定义插件,我的一个任务需要确保另一个插件应用于同一个项目.因为它将在它之上运行.我希望我的插件的用户避免设置对另一个插件的显式依赖 - 我想在我的插件中进行.
所以,我希望应用此插件(https://plugins.gradle.org/plugin/org.hidetake.ssh).这是我的依赖.
我如何创建插件的方式 - 我只是在groovy上创建一个类代码,将它放在buildSrc\src\main\groovy中并在项目中应用groovy插件.所以我的自定义插件在构建阶段可以看到.它的工作原理,我为同一个项目做了很少的其他插件,所以现在好了.
我已经浏览了其他主题和谷歌相同的问题,但我不能让这项工作对我来说.这是我如何应用代码:
void apply(Project project) {
project.buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "org.hidetake:gradle-ssh-plugin:1.1.3"
}
}
project.apply plugin: "org.hidetake.ssh"
...
Run Code Online (Sandbox Code Playgroud)
我收到的错误消息:找不到ID为'org.hidetake.ssh'的插件.我试图通过gradle api也使用project.repositories.mavenCentral()和project.dependencies.add以及project.apply(插件:'org.hidetake.ssh')然后 - 也不起作用 - 同样的错误消息.试图在project.dependencies.add("myConfig",[group:'org.hidetake',名称:'gradle-ssh-plugin',版本:'1.1.3'])中使用长记法 - 没有结果.
感谢是否有人可以指导正确的语法\方式使其工作.
好的,最后我明白了.要解决此问题,您需要执行以下操作:
声明插件的依赖关系作为运行时.像这样:
repositories {
jcenter()
}
dependencies {
runtime 'org.hidetake:gradle-ssh-plugin:2.6.0'
}
Run Code Online (Sandbox Code Playgroud)在您自己的插件定义中明确应用插件.像这样:
void apply(Project project) {
project.pluginManager.apply('org.hidetake.ssh')
...
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1597 次 |
| 最近记录: |