Code Monkey home page Code Monkey logo

Comments (5)

msdx avatar msdx commented on July 21, 2024

分别在module B和module C配置,然后进行发布就可以。

from gradle-publish.

 avatar commented on July 21, 2024

执行gradlew bintrayUpload时出错,大意是依赖的module A不能识别。经查相关资料,需要修改bintray.gradle,加入“afterEvaluate {}”

from gradle-publish.

msdx avatar msdx commented on July 21, 2024

是在生成pom文件依赖关系时出错还是?
请问你的解决方式是?

from gradle-publish.

 avatar commented on July 21, 2024

生成javadoc及pom时出错,解决办法是修改为以下代码:

afterEvaluate { project ->
    android.libraryVariants.all { variant ->
        tasks.androidJavadocs.doFirst {
            classpath += files(variant.javaCompile.classpath.files)
        }
    }
}

task androidJavadocs(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    exclude '**/BuildConfig.java'
    exclude '**/R.java'
    failOnError = false
}

完整代码:

0、build.gradle

    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
    }
// 这个脚本是用来发布项目到jcenter
apply from: rootProject.file('publish.gradle')

1、gradle.properties

#下面定义一些常量供publish.gradle使用
POM_GROUP=cn.qqtheme.framework
POM_VERSION_NAME=1.0.0
POM_NAME=Picker For Android
POM_ARTIFACT_ID=AndroidPicker
POM_PACKAGING=aar
POM_DESCRIPTION=安卓选择器类库,包括日期时间选择、单项选择、城市地址选择、文件目录选择、颜色选择等
POM_URL=https://github.com/gzu-liyujiang/AndroidPicker
POM_SCM_URL=https://github.com/gzu-liyujiang/AndroidPicker
POM_SCM_CONNECTION=scm:git:git://github.com/gzu-liyujiang/AndroidPicker.git
POM_SCM_DEV_CONNECTION=scm:git:ssh://[email protected]/gzu-liyujiang/AndroidPicker.git
POM_LICENCE_NAME=The Apache Software License, Version 2.0
POM_LICENCE_NAME_SHORT=Apache-2.0
POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt
POM_LICENCE_DIST=repo
POM_DEVELOPER_ID=lyj
POM_DEVELOPER_NAME=liyujiang
POM_DEVELOPER_EMAIL=liyujiang_tk@yeah.net
POM_DEVELOPER_URL=http://ime.qqtheme.cn
POM_GIT_URL=https://github.com/gzu-liyujiang/AndroidPicker.git
POM_ISSUE_URL=https://github.com/gzu-liyujiang/AndroidPicker/issues

2、local.properties

sdk.dir=D\:\\android-sdk
bintray.user=gzu-liyujiang
bintray.apikey=*************

3、publish.gradle

apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'

publishing {
    publications {
        mavenJava(MavenPublication) {
            groupId POM_GROUP
            version POM_VERSION_NAME
            artifactId POM_ARTIFACT_ID
            artifact "${project.buildDir}/outputs/aar/${project.name}-release.aar"
            artifact androidJavadocsJar
            artifact androidSourcesJar
            pom.withXml {
                Node root = asNode()
                root.appendNode('name', POM_ARTIFACT_ID)
                root.appendNode('description', POM_DESCRIPTION)
                root.appendNode('url', POM_URL)
                def issues = root.appendNode('issueManagement')
                issues.appendNode('system', 'github')
                issues.appendNode('url', POM_ISSUE_URL)
                def scm = root.appendNode('scm')
                scm.appendNode('url', POM_SCM_URL)
                scm.appendNode('connection', POM_SCM_CONNECTION)
                scm.appendNode('developerConnection', POM_SCM_DEV_CONNECTION)
                def license = root.appendNode('licenses').appendNode('license')
                license.appendNode('name', POM_LICENCE_NAME)
                license.appendNode('url', POM_LICENCE_URL)
                license.appendNode('distribution', POM_LICENCE_DIST)
            }
        }
    }
}

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
    user = properties.getProperty("bintray.user")
    key = properties.getProperty("bintray.apikey")
    publications = ['mavenJava']
    dryRun = false
    publish = true
    pkg {
        repo = 'maven'
        name = POM_ARTIFACT_ID
        desc = POM_NAME
        websiteUrl = POM_URL
        issueTrackerUrl = POM_ISSUE_URL
        vcsUrl = POM_GIT_URL
        licenses = [POM_LICENCE_NAME_SHORT]
        labels = ['android', 'aar']
        publicDownloadNumbers = true
        version {
            name = POM_VERSION_NAME
            vcsTag = POM_VERSION_NAME
        }
    }
}

afterEvaluate { project ->
    android.libraryVariants.all { variant ->
        tasks.androidJavadocs.doFirst {
            classpath += files(variant.javaCompile.classpath.files)
        }
    }
}

task androidJavadocs(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    exclude '**/BuildConfig.java'
    exclude '**/R.java'
    failOnError = false
    options {
        encoding 'UTF-8'
        charSet 'UTF-8'
        author true
        version true
        links "http://docs.oracle.com/javase/7/docs/api/"
        linksOffline "http://d.android.com/reference", "${android.sdkDirectory}/docs/reference"
        title POM_NAME
    }
}

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

task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.sourceFiles
}

artifacts {
    archives androidSourcesJar
    archives androidJavadocsJar
}

参加:https://github.com/gzu-liyujiang/GradlePublishToJcenter

from gradle-publish.

msdx avatar msdx commented on July 21, 2024

@gzu-liyujiang 感谢提供案例。

from gradle-publish.

Related Issues (16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.