0

I'm trying to publish my java library to JitPack using the maven-publish plugin in Gradle. I have done all that the docs have said, and JitPack says publishing was a success, but it seems like I cannot install my library, even if I just copy and paste straight from JitPack's repository.

I tried pushing straight to master on the github repo. I also changed the artifact id to sertain-core and the version to 1.0.0, as that is what is specified in the publish block. I even checked the repository url and downloaded the jar manually, and it worked fine. It seems that the only problem is downloading the jar using it's maven coordinates.

Here's my library's build file (the dependencies block is in another file and works fine):

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

val ktlint by configurations.creating

plugins {
    kotlin("jvm") version "1.3.50"
    `maven-publish`
}

dependencies {
    implementation(kotlin("stdlib-jdk8"))
    implementation(kotlin("reflect", "1.3.50"))
    implementation("org.jetbrains.kotlinx", "kotlinx-coroutines-core", "1.3.1")
    implementation("org.jetbrains.kotlin", "kotlin-reflect", "1.3.50")
    implementation("edu.wpi.first.wpilibj", "wpilibj-java", "2019.4.1")
    implementation("edu.wpi.first.hal", "hal-java", "2019.4.1")
    implementation("edu.wpi.first.ntcore", "ntcore-java", "2019.4.1")
    implementation("com.ctre.phoenix", "api-java", "5.14.1")

    ktlint("com.pinterest:ktlint:0.34.2")
}

tasks {
    val ktlint by creating(JavaExec::class) {
        group = "verification"
        description = "Check Kotlin code style."
        classpath = configurations["ktlint"]
        main = "com.pinterest.ktlint.Main"
        args = listOf("src/**/*.kt")
    }

    "check" {
        dependsOn(ktlint)
    }

    create("ktlintFormat", JavaExec::class) {
        group = "formatting"
        description = "Fix Kotlin code style deviations."
        classpath = configurations["ktlint"]
        main = "com.pinterest.ktlint.Main"
        args = listOf("-F", "src/**/*.kt")
    }
}

tasks.withType<KotlinCompile> {
    kotlinOptions.jvmTarget = "1.8"
    kotlinOptions.freeCompilerArgs += setOf("-Xuse-experimental=kotlin.Experimental")
}

publishing {
    publications {
        create<MavenPublication>("maven") {
            groupId = "org.sert2521.sertain"
            artifactId = "sertain-core"
            version = "1.0.0"

            from(components["java"])

            artifact("$buildDir/libs/${project.name}.jar")
        }
    }
}

And here's the build file of the project that should install the library

plugins {
    id "org.jetbrains.kotlin.jvm" version "1.3.50"
    id "edu.wpi.first.GradleRIO" version "2019.4.1"
}

ext.kotlinVersion = "1.3.50"

tasks.whenTaskAdded { task ->
    if (task.name == "deploy" || task.name == "deployMain" || task.name == "simulateJava") task.dependsOn "assemble"
}
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url "https://jitpack.io" }
        maven { url "http://first.wpi.edu/FRC/roborio/maven/release" }
        maven { url "http://devsite.ctr-electronics.com/maven/release" }
        maven { url "https://www.kauailabs.com/maven2" }
        maven { url "http://www.revrobotics.com/content/sw/max/sdk/maven/" }
        maven { url 'https://jitpack.io' }
    }


dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"

    compile "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.1"
    compile "com.kauailabs.navx.frc:navx-java:3.1.344"
    compile "org.jetbrains.kotlin:kotlin-reflect:1.3.50"

    compile wpi.deps.wpilib()
    compile wpi.deps.vendor.java()
    nativeZip wpi.deps.vendor.jni(wpi.platforms.roborio)
    nativeDesktopZip wpi.deps.vendor.jni(wpi.platforms.desktop)

    implementation 'com.github.SouthEugeneRoboticsTeam:sertain:publishing-f3bdecc967-1'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}

deploy {
    targets {
        roboRIO("roborio") {
            team = frc.getTeamOrDefault(2521)
        }
    }
    artifacts {
        frcJavaArtifact("frcJava") {
            targets << "roborio"
            debug = frc.getDebugOrDefault(false)
        }
        fileTreeArtifact("frcStaticFileDeploy") {
            files = fileTree(dir: "src/main/deploy")
            targets << "roborio"
            directory = "/home/lvuser/deploy"
        }
    }
}

jar {
    from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    manifest {
        attributes(
                "Main-Class": "org.sert2521.example.MainKt"
        )
    }
}

wrapper {
    gradleVersion = "5.0"
}

There are no error messages when publishing the library. When installing the library, there is only the usual error from gradle not being able to find a dependency.

Aidan Heller
  • 41
  • 1
  • 4

0 Answers0