4

ここで、qrコードスキャンプロジェクトを成功させました。私はqrcodereaderview 1.0.0 v urlリポジトリライブラリに使用しました。これは私の依存関係です。

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.dlazaro66.qrcodereaderview:qrcodereaderview:1.0.0'
    compile files('libs/ksoap2-android-assembly-3.2.0-jar-with-dependencies.jar')
}

プロジェクトにアプリ モジュールが 1 つしかありません。このプロジェクトをライブラリ (.AAR) として jcenter リポジトリにアップロードしたいと考えています。

jcenter のアップロード手順をいくつか試してみましたが、bintrayupload からも正常なアップロード応答が得られました。

このため、Github ログインを作成し、プロジェクト URL を作成しました。しかし、プロジェクト コードを github にアップロードしませんでした。build.gradle でのみ空のプロジェクト URL を指定しました。

しかし、bintrayリポジトリで見たとき、私のbintray mavenリポジトリにはコードの更新/バージョンの変更はありません。

Android Studio プロジェクトを .aar(library) ファイルとして変換し、以下の手順で jcenter リポジトリにアップロードします。

1)。メイン アプリ モジュールの build.gradle ファイルを 3 つの変更点に変更しました。
ライブラリ プラグインを変更し、アプリケーション IDをコメントし、マニフェスト ファイル ランチャー アクティビティを変更しました。

私のアプリ モジュール build.gradle ファイル:

//apply plugin: 'com.android.application'
apply plugin: 'com.android.library'
ext {
    bintrayRepo = 'maven' //mavenrepo
    bintrayName = 'app'

    publishedGroupId = 'com.test.testsdkproj16'
    libraryName = 'TestsdkProj16'
    artifact = 'app'

    libraryDescription = 'A simple qr code library calling your project in Android'

    siteUrl = 'https://github.com/vhkrishnanv/TestsdkProj16'
    gitUrl = 'https://github.com/vhkrishnanv/TestsdkProj16.git'
    githubRepository= 'vhkrishnanv/TestsdkProj16'

    libraryVersion = '1.0.0'

    developerId = 'vhk*********6'
    developerName = 'harikrish'
    developerEmail = 'vhkris******@gmail.com'

    licenseName = 'The Apache Software License, Version 2.0'
    licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
    allLicenses = ["Apache-2.0"]
}
allprojects {
    repositories {
        jcenter()
    }
}
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    defaultConfig {
        //applicationId "com.test.testsdkproj16"
        minSdkVersion 18
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.dlazaro66.qrcodereaderview:qrcodereaderview:1.0.0'
    compile files('libs/ksoap2-android-assembly-3.2.0-jar-with-dependencies.jar')
}

// Place it at the end of the file
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'

私のマニフェストファイル:

 <activity android:name=".MainActivitySDK_16">
            <intent-filter>
                <action android:name="com.test.testsdkproj16.MainActivitySDK_16" />
                <!--comment when exporting AAR below two lines-->
                 <!--<action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.LAUNCHER" />-->
            </intent-filter>
        </activity>

gradle.propertiesファイル:

bintray.user=vhk*********6
bintray.apikey=***1f************************98f51***

2)。スタジオ プロジェクトを bintray.com にアップロードするための次のステップ。そのために3つのコマンドを使用しました。

-gradleW clean
BUILD SUCCESSFUL
-gradleW install
BUILD SUCCESSFUL
-gradleW bintrayupload
BUILD SUCCESSFUL

上記の 3 つのコマンドを実行した後、bintray リポジトリを見たところ、リポジトリに変更はありません。

私のリポジトリのスクリーンショット

ここに画像の説明を入力

どのステップが欠けているのか正確にはわかりません。誰でもこのエラーを解決できますか。

全体として、Studio2.2.2 プロジェクト (.aar ライブラリとして変換) を jcenter リポジトリに公開したいので、プロジェクトの URL をこのように取得する必要があります。(依存関係にある他の新しいプロジェクトでもこのURLを試したところ、コード/ .aarがリポジトリにアップロードされないため、同期中にエラーが発生しました)

保留中の最終ステップが 1 つあります。コードがアップロードされると、jcenter 同期が bintray repos で保留中になる必要があります。それからのみ、上記の URL を他の新しいプロジェクトに使用できます。

compile 'com.test.testsdkproj16:app:1.0.0' 
4

2 に答える 2

3

あなたが書いたあなたの質問では、bintray アカウントへの資格情報を保持することをgradle.properties:

bintray.user=vhk*********6
bintray.apikey=***1f************************98f51***

次の場所からソース ファイルを調べる場合:

https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle

次の行が表示されます。

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")

資格情報を間違ったファイルに入れました。彼らは入っているべきですlocal.properties

EDIT 長い議論の後、最終的にプロジェクトはbintrayに公開されました。ここでの問題は、ユーザーが別の組織のプロジェクトに発行していたことです。確かに、@gba の回答は正しかったです。ただし、@harikrishnan は、プロジェクトをダウンロードbintray.gradleinstall.gradleて変更することをお勧めしました。これらは次のように表示されます。

bintray.gradle

apply plugin: 'com.jfrog.bintray'
apply from: '../bintray.data.gradle'

version = libraryVersion

if (project.hasProperty("android")) { // Android libraries
    task sourcesJar(type: Jar) {
        classifier = 'sources'
        from android.sourceSets.main.java.srcDirs
    }

    task javadoc(type: Javadoc) {
        options.addBooleanOption('Xdoclint:none', true)
        source = android.sourceSets.main.java.srcDirs
        classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    }
} else { // Java libraries
    task sourcesJar(type: Jar, dependsOn: classes) {
        classifier = 'sources'
        from sourceSets.main.allSource
    }
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives javadocJar
    archives sourcesJar
}

Properties properties = new Properties()
properties.load(new FileInputStream(file(rootProject.file('local.properties'))))

bintray {
    user = properties.getProperty("bintray.user")
    key = properties.getProperty("bintray.apikey")

    configurations = ['archives']
    pkg {
        repo = bintrayRepo
        name = bintrayName
        desc = libraryDescription
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        userOrg = userOrg
        licenses = allLicenses
        publish = true
        publicDownloadNumbers = true
    }
}

install.gradle

apply plugin: 'com.github.dcendents.android-maven'
apply from: '../bintray.data.gradle'

group = publishedGroupId

install {
    repositories.mavenInstaller {
        pom {
            project {
                packaging 'aar'
                groupId publishedGroupId
                artifactId artifact

                name libraryName
                description libraryDescription
                url siteUrl

                licenses {
                    license {
                        name licenseName
                        url licenseUrl
                    }
                }
                developers {
                    developer {
                        id developerId
                        name developerName
                        email developerEmail
                    }
                }
                scm {
                    connection gitUrl
                    developerConnection gitUrl
                    url siteUrl

                }
            }
        }
    }
}

bintray.data.gradle:

ext {
    bintrayRepo = 'maven'
    bintrayName = 'samplename'

    publishedGroupId = 'sample.package.name'
    libraryName = 'SampleName'
    artifact = 'samplename'

    libraryDescription = ''

    siteUrl = ''
    gitUrl = ''

    libraryVersion = '1.0.0'

    developerId = ''
    developerName = 'Zagórski'
    developerEmail = ''

    licenseName = 'The Apache Software License, Version 2.0'
    licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
    allLicenses = ["Apache-2.0"]
}

アプリのbuild.gradle:

apply plugin: 'com.android.application'

(...)

apply from: '../install.gradle'
apply from: '../bintray.gradle'

メインbuild.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.1'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

これらのクラスを利用したサンプルプロジェクトはこちら

于 2016-12-05T15:49:11.563 に答える