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‘ }的语法