Gradle:在自定义独立插件中使用“maven-publish”插件

2024-03-06

在我的第三个问题之后,几乎感觉像是在发垃圾邮件,因为我的问题看起来很微不足道。但我在 Gradle 文档中找不到对我的案例有任何帮助,而且关于 stackoverflow 的其他问题也没有帮助。

这次:我无法使用maven-publish插件在我自己的独立自定义插件中。到目前为止我的插件的代码:

package com.sample.gradle;

import org.gradle.api.Project;
import org.gradle.api.Plugin;

public class SampleGradlePlugin implements Plugin<Project> {
    public void apply(Project project) {

        project.apply plugin: 'application'
        project.apply plugin: 'maven-publish'
        project.apply plugin: 'maven'

        project.publishing.publications {
            maven(MavenPublication) {
                groupId project.group
                artifactId project.name
                version=project.version
                from components.java
            }
        }

        project.uploadArchives {
            repositories {
                mavenDeployer {
                    repository(url: project.Repo_Upload_Internal){
                        authentication(userName: project.Repo_Upload_User, password: project.Repo_Upload_Pass)
                    }        
                    snapshotRepository(url: project.Repo_Upload_Snapshot){
                        authentication(userName: project.Repo_Upload_User, password: project.Repo_Upload_Pass)
                    }
                }
            }
        }
        //this try/catch is not important for my question
        try{
            project.repositories {
                maven {
                    url project.Repo_Gp_Internal
                    credentials {
                        username project.Repo_Gp_User;
                    }
                }
            }
        }
        catch(MissingPropertyException e){
            println "Info: '"+e.getProperty()+"' not declared in \\"+project.name+"\\gradle.properties"
        }
    }
}

The publishing当我在我的一个项目中使用我的插件时,闭包是给我带来这个错误的重要部分:

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\Users\quastc\Desktop\Gradle_Projects\Application_RootProject\buil
d.gradle' line: 3

* What went wrong:
A problem occurred evaluating root project 'Application_RootProject'.
> Failed to apply plugin [id 'sample.sample-groovy-plugin']
   > Cannot create a Publication named 'MavenPublication' because this container
 does not support creating elements by name alone. Please specify which subtype
of Publication to create. Known subtypes are: MavenPublication

我的错误在哪里?我忘记了什么?

如果有人回答,请告诉我你是如何获得知识的。


就我而言,我修复了该错误消息,添加了以下内容:

import org.gradle.api.publish.maven.MavenPublication

但后来遇到了其他问题,最后最终使用了星云发布插件 https://github.com/nebula-plugins/nebula-publishing-plugin,全部解决

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gradle:在自定义独立插件中使用“maven-publish”插件 的相关文章

随机推荐

  • C++ iostream 中的奇怪 BUG?

    这是 iostream 中的错误吗 include
  • Android的convertView,用还是不用?

    文章中多线程提高性能 http android developers blogspot com 2010 07 multithreading for performance html来自 Android 开发者博客 convertView用
  • 如何在Android中更改进度条的进度颜色

    我在 Android 应用程序中使用水平进度条 并且我想更改其进度颜色 默认情况下为黄色 我怎样才能使用code 不是 XML 这不是以编程方式进行的 但我认为无论如何它可以帮助很多人 我尝试了很多 最有效的方法是将以下几行添加到 xml
  • 单元测试错误条件 - EINTR

    简而言之 如何对系统调用上的错误条件 例如 EINTR 进行单元测试 我正在研究的一个特定示例 这可能是一种单独的情况 是 当它返回带有 errno EINTR 的 EOF 时是否有必要再次调用 fclose 该行为取决于 fclose 的
  • 如何在 vapi 文件中编写 void 指针类型定义?

    我正在尝试编写一个 VAPI 文件来使用 unixODBC 其中一个函数被称为SQLAllocHandle From
  • R 中存在大循环?

    假设我想使用以下命令执行模拟function fn1 lt function N res lt c for i in 1 N x lt rnorm 2 res lt c res x 2 x 1 res 对于非常大的N 计算似乎挂起 有更好的
  • 如何隐藏表单上的轮廓

    我必须设计一个其中包含输入的表单 我在输入上使用背景图像 因此它看起来像一个按钮 每次有人点击它时 它都会发送 POST 这是我想要实现的行为 但问题在于表格的轮廓 当我们单击表单时 会显示轮廓 虽然很小 但如果能让表单 或输入 失去轮廓那
  • 如何在 Vuejs 组件中应用过滤器?

    如果我有一个简单的过滤器 请说 Vue filter foo function value return value replace foo g bar 还有一个简单的组件 Vue component example props msg S
  • 可以在网站上嵌入 Github 问题列表(带有特定标签)吗?

    有谁知道有一种简单的方法可以将带有特定标签的问题列表从 github 嵌入到网站上吗 这是为了在项目网站上嵌入未解决的错误列表 使用 jQuery 的解决方案 有一种方法可以轻松地使用 github api 仅使用 javascript 无
  • 固定位置在 Safari 7 中不起作用

    我有一个固定位置的 div 当我滚动时它位于屏幕底部 而不是移动 然而 在 Safari 上 这个 div 的行为就像是绝对定位的 并随着其余内容一起上下移动 当我单击 检查元素 时 编程的 所需的 位置会突出显示 而不是视觉 实际 位置
  • 使用 Python min() max() 避免数值的字典顺序

    我有一个脚本可以从一组值中提取随机数 然而 今天它崩溃了 因为min and max 按字典顺序对值进行排序 因此 200 被视为大于 10000 我怎样才能避免这里的字典顺序 Len关键是在正确的轨道上 但并不完全正确 我找不到任何其他有
  • 使用 istream 从命名管道读取

    是否可以使用 C stl 从命名管道 mkfifo 读取 使用流 因此没有提前定义char buffer MAX SIZE 用于读操作 我想读取直到缓冲区结束并将结果放入std string 当前方法 bytes read fd buffe
  • 如何在iOS中检索ssl服务器证书?

    我希望能够获得 ssl 证书 如果可能的话 链 以便能够显示可分辨名称并确定它是否是 EV 证书 通过证书策略检测 EV 证书 维基百科 http en wikipedia org wiki Extended Validation Cert
  • 如何使用 Python 获取 Selenium Webdriver 上的会话 ID?

    我正在使用 SauceLabs 我需要 sessionId 来获取那里的作业 ID 并使用它在测试执行期间设置通过 失败状态 如何使用 python 获取会话 ID 找到了 Selenium Remote Webdriver session
  • 如何用 2 列制作 R 图例?

    我想在我的图表上制作一个图例 它是由plot 功能 原本的legend 函数将生成一个只有 1 列的列表 我怎样才能制作一个有两列的图例 我无法找到一种方法可以在一次调用中做到这一点legend对于标准地块 这是一个选项 绘制两个单独的图例
  • 在 JNA 中创建一个本机 Windows 窗口和一些带有 GWL_WNDPROC 的 GetWindowLong

    再会 我已经使用 JNA 与 Windows API 交互有一段时间了 现在我在创建窗口时陷入困境 据我做了以下事情 1 创建了现有窗口的子窗口并为其获取了有效的处理程序 2 了解Windows 中的每个窗口都有一个不间断的消息分发循环 3
  • 我可以更新 WebStorm 中的 TypeScript 版本吗?

    我目前正在使用 WebStorm 10 0 4 最新的 TypeScript 版本是 1 5 3 但在 WebStorm 中存在旧版本的 TypeScript 如何在 WebStorm 中更新我的 TypeScript 版本 在默认设置对话
  • 当路径不存在时的 SHParseDisplayName

    我正在开发一个替代品IFileOpenDialog and IFileSaveDialog 我几乎让它工作了 至少IFileOpenDialog 但是当我想返回时IShellItem代表新文件名 用户选择保存在GetResult 方法 我无
  • 删除注册表键值

    在 MSDN 中 它说在调用更改正在枚举的注册表项的函数时不应使用 RegEnumValue 那么这也适用于删除注册表项值吗 就像这段代码所做的那样 if RegOpenKeyEx m hkey m path c str 0 KEY ALL
  • Gradle:在自定义独立插件中使用“maven-publish”插件

    在我的第三个问题之后 几乎感觉像是在发垃圾邮件 因为我的问题看起来很微不足道 但我在 Gradle 文档中找不到对我的案例有任何帮助 而且关于 stackoverflow 的其他问题也没有帮助 这次 我无法使用maven publish插件