AS-独自の倉庫の構築


まず、これはandroid studioで使用中に作られたと宣言します.
asのプロジェクトでは、このようなコードがよく見られます.
compile 'com.quicktortoise:com-quicktortoise-dev:1.0.0'

あるいは、
compile('com.afollestad.material-dialogs:core:0.8.4.2@aar') {
        transitive = true
    }

使用する場合、copyは他のオープンソースプロジェクトから来ていますが、なぜこのように使用するのか分かりませんが、gradleの構築方式の使用のため、asがbuild.gradleファイルで上記のcompile文を宣言すると、gradleは自動的にネット上から対応するライブラリ(jarやaarなど)を見つけて現在のプロジェクトにロードし、便利に使用できます.
今日は午後になって、やっと分かりました.これは多くの達人が使っている中央倉庫、maven、jcenter、rpmなどです.一言:自分のオープンソースプロジェクトライブラリを書いて、中央倉庫に置いて、他の人や自分で使うようにします.使うのも便利ですが、上記のように導入してgradleを自動的にコンパイルすればいいです.
具体的な使い方:
  • 着https://bintray.com  アカウントを登録して、登録時のアカウントとAPIkey(個人情報編集ページに表示される)
  • を覚えてください.
  • 独自のオープンソースプロジェクトを作成します.このプロジェクトは一般的にライブラリプロジェクトです.メインプロジェクトでmoduleライブラリプロジェクトを作成することもできます.次に、忍耐と注意が必要です.
  • まずlibraryプロジェクトのbuild.gradleに次のコンストラクションスクリプト依存性を追加します:
  • buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
            classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.1.1"
        }
    }

  •     5.次に、現在のgradleファイルの下部に追加します.
    apply from: 'bintray.gradle'

        6.このbintray.gradleファイルはlibraryプロジェクトのルートディレクトリの下に置けばいいです.内容は次のとおりです.
    group = PROJ_GROUP
    version = PROJ_VERSION
    project.archivesBaseName = PROJ_ARTIFACTID
    
    apply plugin: 'com.jfrog.bintray'
    apply plugin: "com.jfrog.artifactory"
    apply plugin: 'maven-publish'
    
    task sourcesJar(type: Jar) {
        from android.sourceSets.main.java.srcDirs
        classifier = 'sources'
    }
    
    task javadoc(type: Javadoc) {
        source = android.sourceSets.main.java.srcDirs
        classpath += configurations.compile
        classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    }
    
    task javadocJar(type: Jar, dependsOn: javadoc) {
        classifier = 'javadoc'
        from javadoc.destinationDir
    }
    
    javadoc {
        options{
            encoding "UTF-8"
            charSet 'UTF-8'
            author true
            version true
            links "http://docs.oracle.com/javase/7/docs/api"
            title PROJ_ARTIFACTID
        }
    }
    
    
    def pomConfig = {
        licenses {
            license {
                name "The Apache Software License, Version 2.0"
                url "http://www.apache.org/licenses/LICENSE-2.0.txt"
                distribution "repo"
            }
        }
        developers {
            developer {
                id DEVELOPER_ID
                name DEVELOPER_NAME
                email DEVELOPER_EMAIL
            }
        }
    }
    
    publishing {
        publications {
            mavenJava(MavenPublication) {
                artifactId PROJ_ARTIFACTID
                artifact javadocJar
                artifact sourcesJar
    
                pom{
                    packaging 'aar'
                }
                pom.withXml {
                    def root = asNode()
                    root.appendNode('description', PROJ_DESCRIPTION)
                    root.children().last() + pomConfig
                }
            }
        }
    }
    
    afterEvaluate {
        publishing.publications.mavenJava.artifact(bundleRelease)
    }
    
    Properties properties = new Properties()
    properties.load(project.rootProject.file('local.properties').newDataInputStream())
    bintray {
        user = properties.getProperty("bintray.user")
        key = properties.getProperty("bintray.apikey")
    
        //user = hasProperty("bintrayUser")?getProperty("bintrayUser"):getProperty("BINTRAY_USER")
        //key = hasProperty("bintrayKey")?getProperty("bintrayKey"):getProperty("BINTRAY_KEY")
    
        publications = ['mavenJava']
        publish = true
    
        pkg {
            repo = 'maven'
            name = PROJ_NAME
            desc = PROJ_DESCRIPTION
            websiteUrl = PROJ_WEBSITEURL
            issueTrackerUrl = PROJ_ISSUETRACKERURL
            vcsUrl = PROJ_VCSURL
            licenses = ['Apache-2.0']
            publicDownloadNumbers = true
        }
    }
    
    artifactory {
        contextUrl = 'http://oss.jfrog.org/artifactory'
        resolve {
            repository {
                repoKey = 'libs-release'
            }
        }
        publish {
            repository {
                repoKey = 'oss-snapshot-local' //The Artifactory repository key to publish to
                username = bintray.user
                password = bintray.key
                maven = true
            }
            defaults {
                //                 ,           jfrog  
                publications('mavenJava')
                publishArtifacts = true
            }
        }
    }

        7.libraryディレクトリの下にあるgradle.properties, :の構成
    PROJ_GROUP=com.quicktortoise
    PROJ_VERSION=1.0.0
    PROJ_NAME=quicktortoise
    PROJ_WEBSITEURL=https://github.com/gao746700783/QuickTortoise
    PROJ_ISSUETRACKERURL=
    [email protected]:quicktortoise/QuickTortoise.git
    PROJ_DESCRIPTION=android quick Dev
    PROJ_ARTIFACTID=com-quicktortoise-dev
    
    DEVELOPER_ID=tortoise
    DEVELOPER_NAME=gaoxiaohui
    [email protected]
    
    #BINTRAY_USER=**************
    #BINTRAY_KEY=**************

        8.命令を実行し、倉庫を中央倉庫に発行する
    gradle bintray

         または1.gradle bintrayUploadを別々に実行するbintray.comにライブラリをパブリッシュする.
    gradle bintrayUpload

         2.実行gradle artifactoryPublishはoss.jfrog.orgにリリースできる.
    gradle artifactoryPublish

        9.jcenterセントラルライブラリに含める
        このページに進みます.https://bintray.com/bintray/jcenter、Include My Packageをクリックして、ポップアップダイアログボックスでアイテムを検索してチェックし、send  できます.
        これで、あなたの倉庫の発表が完了し、審査が成功するのを待って、誰もがプロジェクトで参照することができます.例えば、上記の私のライブラリの使用方法は次のとおりです.
    compile 'com.quicktortoise:com-quicktortoise-dev:1.0.0'
        , , , 。 , ,