Gradle 7 和 jitpack.io 在发布期间遇到错误

Posted

技术标签:

【中文标题】Gradle 7 和 jitpack.io 在发布期间遇到错误【英文标题】:Gradle 7 and jitpack.io runs into error during publish 【发布时间】:2021-05-19 08:20:30 【问题描述】:

当我在 android 项目中升级到 Gradle 7.0 并想在 jitpack.io 中发布 aar 库时,我遇到了

Script '/script/maven-plugin.gradle' line: 2

* What went wrong:
A problem occurred evaluating script.
> Failed to apply plugin 'com.github.dcendents.android-maven'.
   > Could not create plugin of type 'AndroidMavenPlugin'.
      > Could not generate a decorated class for type AndroidMavenPlugin.
         > org/gradle/api/publication/maven/internal/MavenPomMetaInfoProvider 

查看完整日志https://jitpack.io/com/github/appdevnext/moka/0.7.1/build.log

【问题讨论】:

【参考方案1】:

Gradle 7.0 已淘汰 maven 插件,请改用 maven-publish 插件。

我让它工作了

plugins 
    id 'maven-publish'
    ...


task androidSourcesJar(type: Jar) 
    classifier 'sources'
    from android.sourceSets.main.java.srcDirs 


project.afterEvaluate 
    publishing 
        publications 
            release(MavenPublication) 
                from components.release
                artifact androidSourcesJar // optional sources
            
        
    

你需要一个自己的jitpack.yml

jdk:
  - openjdk11
install:
  - ./gradlew build :lib:publishToMavenLocal

在这里您可以看到完整的拉取请求 https://github.com/AppDevNext/Moka/pull/77 现在它可以工作了 https://jitpack.io/#AppDevNext/moka/1.0

【讨论】:

谢谢。这行得通。已经搜索了 2 天关于如何解决 Jitpack 问题 很高兴为您提供帮助。我也找了几天。不要忘记投票的问题;-) 你救了我的命。非常感谢! 如果我只是复制您发布的确切内容并粘贴它会起作用吗? @MohammedAbidNafi 试试看,然后请评分【参考方案2】:

DSL 版本

    publishing 
      publications 
        val mavenJava by creating(MavenPublication::class) 
            from(components["java"])
        
    

【讨论】:

【参考方案3】:

我做了这 3 个步骤(称为 jitpack,定义 Java 版本。,发布 Maven) 请关注他们!

1- 在build.gradle(Project:...) 添加:

repositories 
        google()
        mavenCentral()
        maven  url "https://jitpack.io" 
    

然后在buildscript部分下,添加:

plugins 
    id 'maven-publish'

2- 在build.gradle(Module:app),在android 部分添加:

compileOptions 
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    

3- 在build.gradle(Module:module-name)dependencies 部分后添加:

afterEvaluate 
    publishing 
        publications 
            release(MavenPublication) 
                from components.release
                groupId = 'com.github.yourgitid' //your git id
                artifactId = 'Myket-Intent' //your-repository
                version = '0.1.15' // As same as the Tag
            
        
    

【讨论】:

【参考方案4】:

hannes ach 的回答对我有用。

在旧的 gradle 中,...-sources.jar 文件也被上传到了 jitpack。要恢复该行为,必须稍微增强 gradle sn-p:

project.afterEvaluate 
    publishing 
        publications 
            release(MavenPublication) 
                from components.release
                artifact androidSourcesJar
            
        
    


task androidSourcesJar(type: Jar) 
    classifier 'sources'
    from android.sourceSets.main.java.srcDirs 

【讨论】:

你确定吗?我试驾了jitpack.io/com/github/hannesa2/virocoreCommunity/rc-1.20.2 和来源jitpack.io/com/github/hannesa2/virocoreCommunity/… 但内容是一样的 在这里工作:jitpack.io/com/github/mik3y/usb-serial-for-android/v3.4.3 + github.com/mik3y/usb-serial-for-android/blob/master/…【参考方案5】:

这是一个已知并记录在案的问题:

无法创建“AndroidMavenPlugin”类型的插件 无法为 AndroidMavenPlugin 类型生成修饰类。 org/gradle/api/publication/maven/internal/MavenPomMetaInfoProvider

对于我的情况,我必须声明:

app/module/build.gradle

afterEvaluate 
    publishing 
        publications 
            release(MavenPublication) 
                from components.release
                groupId = 'com.github.alkathirikhalid'
                artifactId = 'connection'
                version = 'v1.0.9'
            
        
    

和项目/build.gradle

plugins 
    id 'maven-publish'

参考:

代码https://github.com/alkathirikhalid/connection/commit/e3195cae4e83eceaf430d7aa497088422e4b7ee3 票务:https://github.com/jitpack/jitpack.io/issues/4772

【讨论】:

【参考方案6】:
Could not get unknown property 'android' for task ':androidSourcesJar' of type org.gradle.api.tasks.bundling.Jar.

这是我的错误,我现在该怎么办?!

【讨论】:

这并不能真正回答问题。如果您有其他问题,可以点击 进行提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review

以上是关于Gradle 7 和 jitpack.io 在发布期间遇到错误的主要内容,如果未能解决你的问题,请参考以下文章

build.gradle系列:maven { url ‘https://jitpack.io‘ }的语法

jitpack.io 无法解析 github repo

如何手动从 jitpack.io 下载 aar 和 pom 文件?

UIHelper

UIHelper

UIHelper