我有用Kotlin编写的Intellij Idea 2016.1 gradle-application(不是Android)。我需要将它放在jCenter中,并作为依赖项添加到Android应用程序中。我找不到任何有关它的信息。所有引用都涉及Android项目。我不知道如何做到这一点。寻找详细的指令将kotlin库(不是Android)发布到jCenter
4
A
回答
3
发布kotlin库到jCenter与JAva库的发布是完全一样的。
buildscript {
ext.kotlinVersion = '1.0.2'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
}
}
plugins {
id "com.jfrog.bintray" version "1.6"
}
apply plugin: 'kotlin'
apply plugin: 'maven-publish'
group '<groupId>'
version '<version>'
sourceCompatibility = 1.6
repositories {
mavenCentral()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
}
bintray {
user = '<bintray user name>'
key = '<bintray API key>'
publications = ['mavenJava']
pkg {
repo = '<repository name on bintray>'
name = '<artifactId>'
version {
name = project.version
released = new Date()
vcsTag = "v${project.version}"
}
}
}
task sourcesJar(type: Jar, dependsOn: project.classes) {
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: project.javadoc) {
from javadoc.destinationDir
}
artifacts {
archives sourcesJar, javadocJar
}
publishing {
publications {
mavenJava(MavenPublication) {
artifactId project.bintray.pkg.name
from components.java
artifact sourcesJar {
classifier = 'sources'
}
artifact javadocJar {
classifier = 'javadoc'
}
}
}
}
在bintray上创建一个存储库,然后打电话给./gradlew bintrayUpload
。如果您不要求bintray插件发布上传的依赖项,那么您必须从您的bintray帐户手动发布它。
发布依赖关系时,您可以将其链接到您帐户的jCenter
。在jCenter
上发布后,您可以将其用作Android项目的常规依赖项。
+0
太棒了!这是工作。谢谢你的好回答。 –
0
迈克尔的回答是正确的。但是,如果您执行bintrayUpload,则kotlin依赖项将包含在.pom文件中。当你将你的lib包含在gradle-project中时,这会导致两次添加kotlin库。这导致DuplicateFileException。我不知道什么是错的。也许我犯了一个愚蠢的错误。但是,如果这是您的情况,您可以使用Michael的build.gradle执行gradlew构建,以生成.jar和source.jar。然后,您可以创建自己的.pom文件,并且不需要依赖关系,并手动将3个文件(jar,source.jar和.pom)部署到bintray。然后将库链接到jCenter。
例如:
生成.pom与./gradlew bintrayUpload:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>ru.livemaster</groupId>
<artifactId>LongToWords</artifactId>
<version>0.1</version>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.0.2</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>
你自己.pom对于没有科特林依赖性部署:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>ru.livemaster</groupId>
<artifactId>LongToWords</artifactId>
<version>0.1</version>
</project>
相关问题
- 1. 将Android库发布到jCenter
- 2. 将OSS库发布到jcenter和maven-central
- 3. 我可以将封闭源库发布到Maven/JCenter/CocoaPods吗?
- 4. 如何迁移gradle发布脚本以将OSS库发布到Bintray的JCenter而不是Sonatype的Maven Central
- 5. 麻烦发布的Android Studio库上jCenter与Bintray
- 6. 将android库发布到jcenter错误 - 将POM文件添加到包的最新版本
- 7. 是否将jcenter的依赖项编译到aar库中?
- 8. Android库里公布了bintray,但目前还无法提供jcenter
- 9. 链接到JCenter以发布到Maven中心丢失
- 10. 将Android库发布到依赖本地Android库项目的Maven
- 11. 不发布到数据库
- 12. Gradle:如何将Android库发布到本地存储库
- 13. 无法连接到android studio中的jcenter()
- 14. 我的Android库在Bintray上存在,但不在jCenter上
- 15. Android库无法编译kotlin
- 16. Android将kotlin源部署到maven存储库
- 17. Android发布图片到脸谱墙不到图库专辑
- 18. 将JCenter添加到Intelij IDEA中
- 19. 将android库发布到亚马逊云程序
- 20. 将android gradle项目发布到本地maven仓库
- 21. 如何使用Android中的twitter4j库将图片发布到Twitter
- 22. Android将发布信息添加到api数据库
- 23. 将Android库(aar)发布到Bintray并提供所选的口味
- 24. 将javascript发布到数据库中
- 25. Android库Gradle发布JAR
- 26. 无法将JSONObject从Android发布到PHP
- 27. 将JSONobjects从Android发布到PHP脚本
- 28. android:将数据发布到webview
- 29. 问题将Android JSONObject发布到PHP
- 30. 将数据从Android发布到php
https://开头github上。 com/MichaelRocks/bimap/blob/master/build.gradle – Michael