当前位置: 首页 > 知识库问答 >
问题:

如何将自定义插件发布到Maven local,然后在另一个本地项目中使用它?[副本]

巫马望
2023-03-14

我已经构建了一个Gradle插件,它在另一个Gradle项目的buildSrc下工作得很好。现在,我已经将其移动到了自己的项目中,并希望将其发布到我的本地Maven repo中,以便我可以在原始项目中使用(buildSrc中没有它)。当然,长期目标是为其他人发布。

问题是发布后,其他项目找不到它。我可以看到~/. m2/repository中的文件,它们似乎是正确的(据我所知最好)。我在两个项目中尝试了十几种插件id、组id和项目名称组合,它们都导致无法在另一个项目中加载插件:

plugin[id:'update4j-gradle-plugin', version:'0.1']未在以下任何来源中找到:

Gradle核心插件(不是核心插件,请参见https://docs.gradle.org/4.9/userguide/standard_plugins.html对于可用的核心插件)

插件存储库(无法解析插件工件“update4j gradle Plugin:update4j gradle Plugin.gradle.Plugin:0.1”)

在以下存储库中搜索:

Gradle中央插件库

当我查看我的本地Maven repo时,我发现插件标记工件,它们看起来是正确的,但我真的不知道。

Gradle中的插件设置和发布配置为:

group 'net.christophermerrill'
version '0.1'
gradlePlugin {
    plugins {
        update4j {
            id = 'update4j-gradle'
            implementationClass = 'net.christophermerrill.update4j.gradle.Update4jPlugin'
        }
    }
}

publishing {
    repositories {
        mavenLocal()
    }
}

插件引用自其他项目,如下所示:

id 'update4j-gradle' version '0.1'

整个项目都在GitHub上:https://github.com/ChrisLMerrill/update4j-gradle-plugin所以你可以试试看。生成主项目并使用以下命令从根文件夹发布:

gradlew publishToMavenLocal

在示例文件夹中,运行任何gradlew命令来显示问题,例如。

gradlew run

共有1个答案

岳华灿
2023-03-14

答案是,我所拥有的一切都是正确的,但在设置中需要一个pluginManagement块。gradle以从非标准存储库中读取插件。这是关于这个问题的公认答案:

为什么Gradle不在本地maven存储库中查找插件?

 类似资料:
  • 我写了一个gradle插件,我只想在我自己的项目中使用。下面是一个简化的文件结构: 我通过引用jar文件将插件添加到模块 一开始效果很好,但有一个问题。如果您清理项目并尝试再次构建它,它将失败,因为'。/plugin/build/libs/payload-plugin-0.0.1-SNAPSHOT。jar不再存在,它将不会尝试重建插件模块,因为这将被视为配置错误。 我尝试只使用gradlew:so

  • 问题内容: 我是PHP的新手,我使用Eclipse SDE构建一个简单的Web应用程序。 我的方案是: 我有 index.php 页面,其中包括登录表单( 2个文本框和Login Button ) 我有包含两个表的MySQL数据库:system_users和user_errors 每当用户成功在index.php页面中登录时,这都应将其重定向到 page1.php ,然后从user_errors表

  • 我有一个发布的gradle插件,看起来像这样: 我想将这个插件作为一个项目包含在我的多项目构建中,而不是将其发布到repo以便于开发。 这个插件有3个项目A正在使用的静态编程语言文件。MyPluginClass.kts有我自己的插件类,MyTaskClass.kts有我自己的任务类,Utils.kts只包含kotlin函数。java类用于MyPlugin和MyTask。 它被放在项目A的build

  • 我已经构建了一个定制的gradle插件,我正试图将其发布到一个私有的maven repo。我使用插件来实现这一点。在经历了很多麻烦之后,我查看了google play services插件的实现(https://github.com/google/play-services-plugins/blob/master/google-services-plugin/publish.gradle)并试图复

  • 正在开发一个应用程序,采取学生考勤,我想得到的名单上勾选的名字“考勤”,当我点击一个“考勤”在相同的自定义列表视图。拜托,我该怎么做? 这是我的密码...自定义视图 ListAdapter公共类StudentListAdapter1扩展了BaseAdapter{private Context mContext;private List mStudentList; } 考勤activityprote

  • 我正在尝试将一个自定义项目添加到发行版中。我创建的项目通过 mvn原型:generate-darchetypeGroupid=org.opendaylight.controller-darchetypeArtifactid=opendaylight-startup-archetype-darchetypePerepository=https://nexus.opendaylight.org/con