首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用自定义主要工件发布java库

使用自定义主要工件发布java库
EN

Stack Overflow用户
提问于 2019-09-22 11:16:22
回答 2查看 147关注 0票数 0

我正在尝试创建一个java库,其中包含自定义的主要工件。我遵循了这个documentation,但问题是当我运行"publish“任务时,我得到了这个错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Could not determine the dependencies of task ':publishMavenPublicationToMyRepoRepository'.
> Task with path 'rpm' not found in root project 'commons'.

这是我的gradle文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import com.netflix.gradle.plugins.rpm.Rpm

plugins {
    `java-library`
    `maven-publish`
    id("nebula.ospackage") version "7.4.1"
    kotlin("jvm") version "1.3.50"
}

group = "com.test"
version = "1.0.0"
java.sourceCompatibility = JavaVersion.VERSION_1_8

repositories {
    mavenCentral()
}

dependencies {
    implementation("javax.xml.bind:jaxb-api:2.3.1")
    implementation("io.jsonwebtoken:jjwt:0.9.1")
    implementation("com.googlecode.libphonenumber:libphonenumber:8.10.14")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.9.9")
}

tasks.withType<Rpm> {
    version = "1.0.0"
    release = "1"
    packageName = "com.test.commons"
    into("$buildDir/rpms/com.test.commons.rpm")
}

val rpmFile = file("$buildDir/rpms/com.test.commons.rpm")
val rpmArtifact = artifacts.add("archives", rpmFile) {
    type = "rpm"
    builtBy("rpm")
}

publishing {
    publications {
        create<MavenPublication>("maven") {
            artifact(rpmArtifact)
        }
    }

    repositories {
        maven {
            name = "myRepo"
            url = uri("file://${buildDir}/repo")
        }
    }
}

我认为问题出在rpm任务中,我该如何解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2019-09-23 00:31:35

rpm任务类型在nebula.rpm插件中提供,如wiki here中所述

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plugins {
    id("nebula.ospackage") version "7.4.1"
    id("nebula.rpm") version "7.4.1"
}

不熟悉这个插件,但看起来应用nebula.ospackage还不够。

票数 0
EN

Stack Overflow用户

发布于 2020-06-12 12:08:44

nebula.ospackage插件将创建一个名为buildRpmcom.netflix.gradle.plugins.rpm.Rpm类型的任务。

在脚本中,您通过名称rpm引用了一个不存在的任务:这解释了您得到的错误(> Task with path 'rpm' not found in root project 'commons'.)

只需更新您的脚本以使用正确的任务名称:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
val rpmArtifact = artifacts.add("archives", rpmFile) {
    type = "rpm"
    builtBy("buildRpm") // <=== instead of "rpm"
}

注意:你不需要应用插件nebula.rpmnebula.ospackage就足够了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58048668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文