私たちの仕事では、バターナイフ、Gilde、RxJavaなどのサードパーティのオープンソースライブラリをよく参照します。最も簡単で最速の方法は、たとえばgradleでコンパイル参照を使用することです。
コンパイル 'io.reactivex:rxjava:1.1.3'
他の人が使用するためのリファレンスを提供するために、自分でオープンソースライブラリを作成することを考えたことはありますか?この記事では、他の人が使用できるライブラリを作成する方法について説明します。
まず第一に、あなたは図書館を持っている必要があります
ライブラリの作成は非常に簡単です。インターネット上には多くの例とチュートリアルがあります。スペースを節約するために、この記事では簡単に紹介します。
最初にAndroidStudioで共通プロジェクトを作成し、次に作成したプロジェクトを右クリックして、->新規->モジュールを選択します
Paste_Image.png
ポップアップウィンドウで[AndroidLibrary]を選択すると、従来のjarと同様の伝説的なaarパッケージが作成されます。
次に、横暴な名前を選択します。それだけです。(ただし、メインプロジェクトでこのlibを使用する場合は、build.gradleで構成する必要があります。多くのオンライン記事では紹介されていません)
次はBintrayとjCenterです
Bintrayとは何ですか?jCenterとは何ですか?
まず、jCenterはパブリックストレージコントロールに相当するコードライブラリです。簡単に言えば、aarファイルやjCenterサーバーに書き込んだドキュメント記述ファイルなどをパッケージ化してアップロードします。他の人はアップロードしたパッケージをアップロードできます。 jCenterサーバーを介してダウンロードされます。
Bintrayはどうですか?BintrayはjCenterのプロバイダーです。複数のプラットフォームへのlibのアップロードをサポートしています。jCenterは多くのプラットフォームの1つにすぎません。jCenterは特定の場所にある倉庫であり、Bintrayは配達用トラックであり、作成したライブラリであると鮮明に言われています。商品です。
したがって、作成したライブラリを他のユーザーと共有する場合は、Bintrayを介してjCenterにアップロードする必要があります。まず、Bintrayにアカウントを登録するか、Githubアカウントで直接ログインする必要があります。
ログイン後、https://bintray.com/profile/editページの左側のメニューの下部にあるAPIキーをコピーします。
Paste_Image.png
プロジェクトのルートgradleに参加する
dependencies {
....
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
}
ライブラリのgradleを追加します。
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
version = "0.1.1" // 修改为你的版本号
def siteUrl = 'https://github.com/h3clikejava/ExtendImageView' // 修改为你的项目的主页
def gitUrl = 'https://github.com/h3clikejava/ExtendImageView.git' // 修改为你的Git仓库的url
group = "h3c.extendimageview" // Maven Group ID for the artifact,一般填你唯一的包名
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
packaging 'aar'
// Add your description here
name 'auto extand ImageView for Android.' //项目描述
url siteUrl
// Set your license
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id 'H3c' //填写的一些基本信息
name 'H3c'
email '[email protected]'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
repo = "maven"
name = "extend-imageview" //发布到JCenter上的项目名字
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
コードは少し面倒で怠惰ですが、実際には非常に単純です。上の段落をコピーして、独自のパラメーターに変更するだけです。詳しくはこちらをご覧ください
ここでは、bintrayのユーザー名とapikeyをプロジェクトのlocal.propertiesファイルに書き込む必要もあります。
// 示例值, 仅供参考
bintray.user=h3 // your bintray user name
bintray.apikey=c5434272d522d35d1a0123459981225564155753 // your bintray api key
OK、上記の構成をBintrayにアップロードする準備ができました。
gradewを介して実行
gradew install
gradew bintrayUpload
Paste_Image.png
通常、誰もが多くの理由で失敗します。ここで紹介しないのはごまかしです!この記事のフォローアップは、この長くて簡単な失敗の方法をあきらめることをあなたに教えるからです。
正常にコンパイルしてBintrayに正常にアップロードすると、おめでとうございます。本当に素晴らしいです。そうすれば、簡単になります。
バージョンでバージョンを確認して成功を示し、[JCenterに追加]をクリックします
Paste_Image.png
説明を入力して、確認を待ちます。レビューが完了すると、サードパーティのライブラリで参照できるようになります。
より簡単な方法novoda
上記のコンテンツを読んだ後、libライブラリを作成してbintrayを介してjCenterにアップロードする方法をすでに知っていると思います。しかし、それは本当に複雑だと思いますか... build.gradleで構成するものは非常に多く、目を閉じて書き出すことはほとんど不可能です。インターネットから検索して貼り付けることしかできません。
次に、より簡単な方法は、引き続きbintrayとjCenterを使用するnovodaライブラリを使用することですが、build.gradleの構成が大幅に簡素化されます。
最初にこの文をルートgradleに追加します
apply plugin: 'com.novoda.bintray-release' // must be applied after your artifact generating plugin (eg. java / com.android.library)
com.android.libraryの下に記述してから
、libgradleに書き込む必要があることに注意してください
publish {
userOrg = 'novoda'
groupId = 'com.novoda'
artifactId = 'bintray-release'
publishVersion = '0.3.4'
}
android {}に追加する必要があります
lintOptions {
abortOnError false
}
Paste_Image.png
この時点でASターミナルで実行します
$ ./gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
BINTRAY_USERNAMEをバイナリ名に置き換え、BINTRAY_KEYをBintrayキーに置き換えます。
成功した場合、失敗した場合、おめでとうございます...多くの理由がありますが、この記事は不正行為であり、紹介しません!喜びはとても自信があり、Bintray jCenterが好きな学生は自分で投げることができます!
ウェンウェイ福祉、はい私は喜んでいます
jCenterは現在最も広く使用されているサードパーティのgradleウェアハウスであるはずですが、作成、コンパイル、アップロードなどのプロセスを作成するアプリケーションは面倒です。1980年代の製品であり、自分でアップロードしてコンパイルする必要があると感じています。 、およびレビュー。、失敗するのは非常に簡単ですか???
この記事は、長年にわたって収集されてきた82年間の喜びをすべての人に紹介することを決定し、ブロガーはそれを最初に尊重します!
JitPackもjCenterと同等のコードリポジトリですが、jCenterを一時的に使用する人はそれほど多くありませんが、ますます多くのオープンソースプロジェクトがJitPackを使用し始めています。
それは本当にとてもとてもシンプルです、それがどれほどシンプルか見てみましょう。
たとえば、ブロガーは自分で使用するための基本的なAndroidライブラリを作成しました。これは、プロジェクトをすばやく構築するのに便利です。アドレスは次の
とおりです。AFastProject(報酬をくれない子供向けに、星を指すことを忘れないでください。 ..)サードパーティのライブラリのため、この記事を使用します上記の2つのaarの公開方法に問題があります。コンパイルできない、または失われるなど、さまざまな方法があります。とにかく、長い間使用されてきました。時間。ついにJitPackで一文で解決しました。。。。
最初にURLhttp://jitpack.ioを開きます
Paste_Image.png
入力ボックスにGithubプロジェクトのアドレスを入力し、[検索]をクリック
すると、最近送信および公開されたバージョンが自動的にトラバースされます。
Paste_Image.png
引用したいオプションをクリックしてください
Paste_Image.png
記事の最後で引用する方法を説明します。
はい、あなたはその権利を読んでいます、クライアントは何も変更する必要はありません。他のプロジェクトは直接引用することができます!
ハハ...私は喜びにとても自信があります
著者:H3c
リンク:https://www.jianshu.com/p/31410d71eaba
出典:ジェーンの本
は著者が著作権を所有しています。商用の再版については、承認を得るために作者に連絡してください。非商用の再版については、出典を示してください。