Giter Club home page Giter Club logo

android-maven-publish's People

Contributors

johnjohndoe avatar salomonbrys avatar takahirom avatar warnyul avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-maven-publish's Issues

Gradle sync fails after adding plugin on a brand new android library

Unable to load class 'org.gradle.api.capabilities.Capability'.
Possible causes for this unexpected error include:

  • Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
    Re-download dependencies and sync project (requires network)
  • The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
    Stop Gradle build processes (requires restart)
  • Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.
In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

Issues with POMs and Android Gradle 3.0

I just tried this plugin and found the following issues with Android Gradle 3.0 (not sure if it works correctly with 2.3.3)

  1. "type" is missing for aar dependencies, e.g.
    api project(':library')
    produces
<dependency>
  <groupId>project-group</groupId>
  <artifactId>library</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <scope>compile</scope>
</dependency>

It should be

<dependency>
  <groupId>project-group</groupId>
  <artifactId>library</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <scope>compile</scope>
  <type>aar</type>
</dependency>
  1. scope is wrong for dependencies, e.g.
    implementation group: 'com.android.support', name: 'support-v4', version: project.ext.supportLibVersion

produces

<dependency>
  <groupId>com.android.support</groupId>
  <artifactId>support-v4</artifactId>
  <version>26.1.0</version>
  <scope>runtime</scope>
</dependency>

As you can see above the scope is set to runtime, but it should be compile. (also type is missing here too)
see https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope (runtime will not be used for compilation)

Kotlin Gradle DSL

How to use this plugin with Kotlin Gradle DSL?
I tried to port Groovy code from docs to Kotlin:

plugins {
    id("com.android.library")
    id("digital.wup.android-maven-publish") version "3.6.1"
}
publishing {
    (publications) {
        "mavenAar"(MavenPublication::class) {
            from(components["android"])
        }
    }
}

But got the exception: SoftwareComponentInternal with name 'android' not found.
It seems like android-maven-publish plugin was applied before library plugin.

Compatibility with Gradle 5.0

I have problems in this part of code

publications {
            mavenAar(MavenPublication) {
                from components.android

                artifact javadocsJar
                artifact sourcesJar
            }
        }

Failed to notify project evaluation listener.
Could not get unknown property 'javadocsJar' for object of type org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.
java.lang.reflect.InvocationTargetException (no error message)
and
Failed to notify project evaluation listener.
Could not get unknown property 'sourcesJar' for object of type org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.
java.lang.reflect.InvocationTargetException (no error message)

Example Project.

It's a bit difficult to decipher how to exactly structure the project. Could you please provide a sample publication example of both one with variants and one without!

Thanks!

Gradle 4.10

I got the error(in IntelliJ IDEA) after update of my Gradle wrapper to 4.10

Publication with name 'defaultAar' not found.

My build.gradle.kts file is:

plugins {
    id("com.android.library")
    id("digital.wup.android-maven-publish") version "3.6.2"
}
publishing {
    (publications) {
        "defaultAar"(MavenPublication::class) {
            from(components["android"])
        }
    }
}

Publishing is not able to resolve a dependency on a project with multiple publications that have different coordinates.

I have 2 lib modules : library , library2

build.gradle in library:

apply plugin: 'com.android.library'
apply plugin: 'digital.wup.android-maven-publish'

android {
    compileSdkVersion 26
    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    flavorDimensions "runner"
    productFlavors {
        sit {
            dimension "runner"
        }
        dev {
            dimension "runner"
        }
        uat {
            dimension "runner"
        }
        prd {
            dimension "runner"
        }
    }

}

dependencies {
   ...
  implementation project(':android-library2')
}

apply from: '../publish.gradle'

build.gradle in library2:

apply plugin: 'com.android.library'
apply plugin: 'digital.wup.android-maven-publish'

android {
    compileSdkVersion 26
    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    flavorDimensions "runner"
    productFlavors {
        sit {
            dimension "runner"
        }
        dev {
            dimension "runner"
        }
        uat {
            dimension "runner"
        }
        prd {
            dimension "runner"
        }
    }

}

dependencies {
   ...
}

apply from: '../publish.gradle'

publish.gradle:

publishing.publications() {
    android.libraryVariants.all { variant ->
        "maven$project.archivesBaseName${variant.name.capitalize()}Aar"(MavenPublication) {
            from components.findByName("android${variant.name.capitalize()}")
            groupId 'com.android.saleshelp'
            artifactId project.archivesBaseName + "-${variant.name.capitalize()}"
            version android.defaultConfig.versionName
        }
    }
}

publishing.repositories {
    mavenLocal()
}

when I run task publish in library, I got the following error:

* What went wrong:
Could not determine the dependencies of task ':android-library2:publishMavenandroid-library2SitReleaseAarPublicationToMavenLocalRepository'.
> Publishing is not able to resolve a dependency on a project with multiple publications that have different coordinates.
  Found the following publications in project ':android-library':
    - Maven publication 'mavenandroid-libraryPrdDebugAar' with coordinates com.cestbon.android.saleshelp:android-library-PrdDebug:1.0
    - Maven publication 'mavenandroid-libraryPrdReleaseAar' with coordinates com.cestbon.android.saleshelp:android-library-PrdRelease:1.0
    - Maven publication 'mavenandroid-libraryDevDebugAar' with coordinates com.cestbon.android.saleshelp:android-library-DevDebug:1.0
    - Maven publication 'mavenandroid-libraryDevReleaseAar' with coordinates com.cestbon.android.saleshelp:android-library-DevRelease:1.0
    - Maven publication 'mavenandroid-libraryUatDebugAar' with coordinates com.cestbon.android.saleshelp:android-library-UatDebug:1.0
    - Maven publication 'mavenandroid-libraryUatReleaseAar' with coordinates com.cestbon.android.saleshelp:android-library-UatRelease:1.0
    - Maven publication 'mavenandroid-librarySitDebugAar' with coordinates com.cestbon.android.saleshelp:android-library-SitDebug:1.0
    - Maven publication 'mavenandroid-librarySitReleaseAar' with coordinates com.cestbon.android.saleshelp:android-library-SitRelease:1.0

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

If I removed apply from: '../publish.gradle' in build.gradle of library2, task :library:publish can be run successfully. But because of I want to publish library2 independently, so library2 must apply from: '../publish.gradle'

How can I do for this error?
Thanks.

publish android library with values-night

I am working on a library which provides a theme,
A common theme for all apps made by us.
So I want to export values-night as well as values to the aar file.
I can publish my package to github packages and everything is working fine except values and values-night aren't added to aar.

I am having following error / warning when I am assembling the module.

D:\common\common\build\intermediates\res\merged\release\values-night-v8\values-night-v8.xml:10: warn: i
gnoring configuration 'night-v8' for attribute attr/toolbar_text_secondary.

Support Gradle 4.5

I'm getting this exception on Gradle 4.5:

> Exception thrown while executing model rule: PublishingPlugin.Rules#publishing(ExtensionContainer)
   > digital.wup.android_maven_publish.AndroidVariantLibrary$CompileUsage.getDependencyConstraints()Ljava/util/Set;

POM file contains packaging as "pom" instead of "aar"

My gradle looks like this for publishing the library to a private maven repository using artifactory

publishing {
    publications {
        aar(MavenPublication) {
            from components.android

            groupId libraryGroupId
            version libraryVersion
            artifactId libraryArtifactId

            artifact("$buildDir/outputs/aar/${artifactId}-release.aar")
        }
    }
}

artifactory {
    contextUrl = repoUrl
    publish {
        repository {
            repoKey = 'libs-release-local'

            username = artifactory_username
            password = artifactory_password
        }
        defaults {
            publications('aar')
            publishArtifacts = true

            properties = ['qa.level': 'basic', 'q.os': 'android', 'dev.team': 'core']
            publishPom = true
        }
    }
}

There are 2 issues currently

  1. The POM file generated has property <packaging>pom</packaging> instead of <packaging>aar</packaging>. The dependencies are generated fine.
  2. When using the library in a project, the AAR file is downloaded correctly by gradle but the POM file is not downloaded and hence the transitive dependencies are not resolved.

The app implementing the library crashes on runtime due to missing runtime dependencies.

Gradle version: 4.4

Gradle 4.6

Hello.

I've tried using it with gradle new BOM support but it produces pom with versions absent from dependencies.

Example:

compile "org.jetbrains.kotlin:kotlin-stdlib"(version is derived from BOM)
produces this
<dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib</artifactId> </dependency>

Getting error: Cannot compare value: java-runtime

Hello,
I included your plugin into one or our projects. The project contains of one Android Application and five Android Libraries. Now, I would like to upload the libraries to our Maven-Repo.

Main build.gradle

buildscript {
    repositories {
        jcenter()
        google()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'com.vanniktech:gradle-android-junit-jacoco-plugin:0.10.0'
        classpath 'io.fabric.tools:gradle:1.24.5'
        classpath 'org.ajoberstar:grgit:2.1.0'
        classpath 'org.owasp:dependency-check-gradle:3.0.1'
        classpath 'io.realm:realm-gradle-plugin:3.3.2'
        classpath 'digital.wup:android-maven-publish:3.1.1'
    }
}

And the build.gradle of one of our library modules:

apply plugin: 'com.android.library'
apply plugin: 'com.vanniktech.android.junit.jacoco'
apply plugin: 'org.owasp.dependencycheck'
apply from: '../gradle-src/checkstyle.gradle'
apply from: '../gradle-src/javadoc.gradle'
apply plugin: 'digital.wup.android-maven-publish'

android {
    compileSdkVersion 26
    buildToolsVersion buildVersion

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 26
        testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
        def numberOfCommits = countGitCommits()
        versionCode 8000 + numberOfCommits
        versionName "0.8.$numberOfCommits"
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    testOptions {
        unitTests.returnDefaultValues = true
    }
}

dependencies {
    implementation "io.reactivex.rxjava2:rxandroid:$rxAndroidVersion"
    implementation "io.reactivex.rxjava2:rxjava:$rxJavaVersion"
    implementation "com.android.support:support-compat:$supportLibVersion"
    implementation "com.google.dagger:dagger:$daggerVersion"
    annotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
    // Needed for @Generated annotation (missing in Java <= 1.6; therefore, Android)
    implementation 'javax.annotation:jsr250-api:1.0'
    testImplementation "junit:junit:$junitVersion"
    testImplementation "org.mockito:mockito-core:$mockitoVersion"
    testImplementation "org.hamcrest:hamcrest-core:$hamcrestVersion"
    testImplementation "org.hamcrest:hamcrest-library:$hamcrestVersion"
    testImplementation "org.powermock:powermock-module-junit4:$powerMockVersion"
    testImplementation "org.powermock:powermock-module-junit4-rule:$powerMockVersion"
    testImplementation "org.powermock:powermock-api-mockito:$powerMockVersion"
    testImplementation "org.powermock:powermock-classloading-xstream:$powerMockVersion"
    androidTestImplementation "com.android.support:support-annotations:$supportLibVersion"
    androidTestImplementation "com.android.support.test:runner:$testSupportVersion"
    androidTestImplementation "com.android.support.test:rules:$testSupportVersion"
    androidTestImplementation "org.hamcrest:hamcrest-library:$hamcrestVersion"
    androidTestImplementation "org.mockito:mockito-core:$mockitoVersion"
    androidTestImplementation "com.google.dexmaker:dexmaker-mockito:$dexmakerVersion"
    androidTestImplementation "com.google.dexmaker:dexmaker:$dexmakerVersion"
}

publishing {
    publications {
        mavenAar(MavenPublication) {
            groupId 'de.mycompany.myapp'
            artifactId 'artifactid'
            version '1.3.0'
            from components.android
        }
    }
}

publishing {
    repositories {
        maven {
            credentials {
                username "myuser"
                password "password"
            }
            url "http://maven.myserver:8081/repository/maven-releases"
        }
    }
}

But when I sync the project with Android Studio, I am getting the following error:

cannot compare value: java-runtime

and it points to the following line:

 from components.android

Am I doing something wrong?
On my machine I have Java JDK 8 installed. I am using gradle 4.1

Error:Cannot compare value: java-runtime

apply plugin: 'digital.wup.android-maven-publish'
publishing {
    publications {
        mavenAar(MavenPublication) {
             from components.android
        }
    }
}

When I add code above to my android library project, I got error .

20:22:16.486 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Caused by: com.google.common.collect.Ordering$IncomparableValueException: Cannot compare value: java-runtime
20:22:16.487 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at com.google.common.collect.ExplicitOrdering.rank(ExplicitOrdering.java:46)
20:22:16.487 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at com.google.common.collect.ExplicitOrdering.compare(ExplicitOrdering.java:40)
20:22:16.487 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication$1.compare(DefaultMavenPublication.java:74)

How can I solve this problem ?

Javadoc?

Is the case of publishing Android libraries and its javadoc supported?

Not automatically publishing dependency modules.

I have an android project which includes 3 modules ModuleA, ModuleB, ModuleC. ModuleA depends on both ModuleB and ModuleC. I'm trying to publish the ModuleA to a maven repository using android-maven-publish plugin and looks like it is not automatically publishing ModuleB and ModuleC to maven when I run publishToMavenLocal. When I try to use published ModuleA as a dependency in a different project gradle could not resolve ModuleB, ModuleC.

Is there something that I am missing?.

I am using gradle plugin version 3.5.0, gradle version 5.4.1 and mavenPublishVersion 3.6.2.

This is how project's gradle looks like
build.gradle(project)

buildScript {
     ...
     dependencies {
        classpath "digital.wup:android-maven-publish:3.6.2"
     }
}

allprojects {
    apply plugin: "digital.wup.android-maven-publish"
}

and ModuleA's build.gradle
build.gradle(ModuleA)

...
dependencies {
    api project(":moduleB")
    api project(":moduleC")
}

publishing {

    repositories {
       ...
       mavenLocal()
    }

    publications {
        mavenSrcModuleA(MavenPublication) {
            from components.android
            groupId = "com.example.sdk"
            artifactId = "moduleA"
            version = "1.0.0"
        }
    }
}

and ModuleB's build.gradle
build.gradle(ModuleB)

...
publishing {

    repositories {
       ...
       mavenLocal()
    }

    publications {
        mavenSrcModuleB(MavenPublication) {
            from components.android
            groupId = "com.example.sdk"
            artifactId = "moduleB"
            version = "1.0.0"
        }
    }
}

and ModuleC's build.gradle
build.gradle(ModuleC)

...
publishing {

    repositories {
       ...
       mavenLocal()
    }

    publications {
        mavenSrcModuleC(MavenPublication) {
            from components.android
            groupId = "com.example.sdk"
            artifactId = "moduleC"
            version = "1.0.0"
        }
    }
}

400 Error on Bintray upload after updating from 3.5.1 to 3.6.1

The project in question: magneticflux-/kotlin-livedata-utils

My log:

C:\Users\Mitchell\StudioProjects\kotlin-livedata-utils>gradlew bintrayUpload --stacktrace

> Configure project :
  Building version '0.3.3' (value loaded from 'version.properties' file).

> Task :kotlin-livedata-utils:bintrayUpload FAILED
:kotlin-livedata-utils:bintrayUpload - publishing to Bintray
  - dry run: false, version: 0.3.3, Maven Central sync: true
  - user/org: magneticflux/magneticflux, repository/package: kotlin-livedata-utils/kotlin-livedata-utils

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':kotlin-livedata-utils:bintrayUpload'.
> Could not upload to 'https://api.bintray.com/content/magneticflux/kotlin-livedata-utils/kotlin-livedata-utils/0.3.3/value: com/github/magneticflux/value: kotlin-livedata-utils/value: 0.3.3/value: kotlin-livedata-utils-value: 0.3.3.pom': HTTP/1.1 400 Bad Reque
st [message:Unable to upload files: Maven group, artifact or version defined in the pom file do not match the file path 'value: com/github/magneticflux/value: kotlin-livedata-utils/value: 0.3.3/value: kotlin-livedata-utils-value: 0.3.3.pom']

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':kotlin-livedata-utils:bintrayUpload'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
        at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:262)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:246)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:136)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.execute(DefaultTaskPlanExecutor.java:201)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.executeWithTask(DefaultTaskPlanExecutor.java:192)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.api.GradleException: Could not upload to 'https://api.bintray.com/content/magneticflux/kotlin-livedata-utils/kotlin-livedata-utils/0.3.3/value: com/github/magneticflux/value: kotlin-livedata-utils/value: 0.3.3/value: kotlin-livedata-utils-
value: 0.3.3.pom': HTTP/1.1 400 Bad Request [message:Unable to upload files: Maven group, artifact or version defined in the pom file do not match the file path 'value: com/github/magneticflux/value: kotlin-livedata-utils/value: 0.3.3/value: kotlin-livedata-uti
ls-value: 0.3.3.pom']
        at com.jfrog.bintray.gradle.BintrayUploadTask$_bintrayUpload_closure8$_closure36$_closure38$_closure40.doCall(BintrayUploadTask.groovy:400)
        at groovyx.net.http.HTTPBuilder$1.handleResponse(HTTPBuilder.java:503)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:222)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:164)
        at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:515)
        at groovyx.net.http.HTTPBuilder.doRequest(HTTPBuilder.java:434)
        at groovyx.net.http.HTTPBuilder.request(HTTPBuilder.java:366)
        at groovyx.net.http.HTTPBuilder$request.call(Unknown Source)
        at com.jfrog.bintray.gradle.BintrayUploadTask$_bintrayUpload_closure8$_closure36.doCall(BintrayUploadTask.groovy:385)
        at com.jfrog.bintray.gradle.BintrayUploadTask$_bintrayUpload_closure8.doCall(BintrayUploadTask.groovy:376)
        at com.jfrog.bintray.gradle.BintrayUploadTask$_bintrayUpload_closure13.doCall(BintrayUploadTask.groovy:477)
        at com.jfrog.bintray.gradle.BintrayUploadTask.bintrayUpload(BintrayUploadTask.groovy:476)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:794)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:761)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
        ... 30 more


* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.8.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 2s
35 actionable tasks: 3 executed, 32 up-to-date

Patch that causes the issue:

Index: gradle/wrapper/gradle-wrapper.properties
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>windows-1252
===================================================================
--- gradle/wrapper/gradle-wrapper.properties	(revision 8bbc009504628fe47f04e171c7309b90deb58bc0)
+++ gradle/wrapper/gradle-wrapper.properties	(date 1529945444523)
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
Index: build.gradle
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- build.gradle	(revision 8bbc009504628fe47f04e171c7309b90deb58bc0)
+++ build.gradle	(date 1529945444537)
@@ -15,7 +15,7 @@
 		classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
 		classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.17"
 		classpath 'org.junit.platform:junit-platform-gradle-plugin:1.2.0'
-		classpath 'digital.wup:android-maven-publish:3.5.1'
+		classpath 'digital.wup:android-maven-publish:3.6.1'
 
 		// NOTE: Do not place your application dependencies here; they belong
 		// in the individual module build.gradle files

from components.android error: Cannot get property 'allDependencies' on null object

Hello, I have released a version of my .aar before and everything was successful. Now, if I go back to to the commit I made the release from, I get this error.

Cannot get property 'allDependencies' on null object

It comes from the publication line from components.android

publishing {
    publications {
        aar(MavenPublication) {
            from components.android
        }
    }
}

It works when I specify the artifact like this:

aar(MavenPublication) {
    //from components.android
    groupId "${artifactProperties.groupId}"
    version "${artifactProperties.version}"
    artifact("$buildDir/outputs/aar/hmkit-android-release.aar")

    pom.withXml {
        def dependenciesNode = asNode().appendNode('dependencies')

        //Iterate over the compile dependencies (we don't want the test ones), adding a <dependency> node for each
        configurations.compile.allDependencies.each {
            def dependencyNode = dependenciesNode.appendNode('dependency')
            dependencyNode.appendNode('groupId', it.group)
            dependencyNode.appendNode('artifactId', it.name)
            dependencyNode.appendNode('version', it.version)
        }
    }
}

But this way the pom file does not have any dependencies.

Why do I get this null object error? Why did it work before and not now?

Im using gradle 4.6 and this release is from an Android projects module.

Off-topic: Why could it be that the dependencies loop is not adding to the pom?

JFrog build info extractor 4.7.1

When using the android-maven-publish:3.3.0 version with build-info-extractor-gradle:4.7.1 a NullPointerException occurs (as in #15):

Caused by: java.lang.NullPointerException: Cannot get property 'allDependencies' on null object
        at digital.wup.android_maven_publish.AndroidVariantLibrary$RuntimeUsage.getRuntimeDependencies(AndroidVariantLibrary.groovy:125)
        at digital.wup.android_maven_publish.AndroidVariantLibrary$RuntimeUsage.getDependencies(AndroidVariantLibrary.groovy:114)
        at org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.from(DefaultMavenPublication.java:195)
        at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:479)
        at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:191)
        at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
        at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
        at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:57)
        at publishing_f2u623pjjtsksb7vx5fy8t9vh$_run_closure2$_closure4$_closure5.doCall(/home/dev/myproject/ops/publishing.gradle:14)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
        at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160)
        at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
        at org.gradle.util.ConfigureUtil$1.execute(ConfigureUtil.java:123)
        at org.gradle.api.internal.AbstractPolymorphicDomainObjectContainer.create(AbstractPolymorphicDomainObjectContainer.java:61)
        at org.gradle.api.internal.PolymorphicDomainObjectContainerConfigureDelegate._configure(PolymorphicDomainObjectContainerConfigureDelegate.java:44)
        at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:66)
        at publishing_f2u623pjjtsksb7vx5fy8t9vh$_run_closure2$_closure4.doCall(/home/dev/myproject/ops/publishing.gradle:13)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
        at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160)
        at org.gradle.util.ConfigureUtil.configureSelf(ConfigureUtil.java:148)
        at org.gradle.api.internal.AbstractNamedDomainObjectContainer.configure(AbstractNamedDomainObjectContainer.java:79)
        at org.gradle.api.internal.AbstractNamedDomainObjectContainer.configure(AbstractNamedDomainObjectContainer.java:34)
        at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:104)
        at org.gradle.util.ConfigureUtil$1.execute(ConfigureUtil.java:123)
        at org.gradle.api.publish.internal.DefaultPublishingExtension.publications(DefaultPublishingExtension.java:48)
        at org.gradle.api.publish.internal.DefaultPublishingExtension_Decorated.publications(Unknown Source)
        at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:479)
        at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:191)
        at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
        at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
        at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:57)
        at publishing_f2u623pjjtsksb7vx5fy8t9vh$_run_closure2.doCall(/home/dev/myproject/ops/publishing.gradle:12)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
        at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160)
        at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
        at org.gradle.util.ConfigureUtil$1.execute(ConfigureUtil.java:123)
        at org.gradle.internal.ImmutableActionSet$CompositeSet.execute(ImmutableActionSet.java:196)
        at org.gradle.internal.MutableActionSet.execute(MutableActionSet.java:35)
        at org.gradle.api.internal.plugins.ExtensionsStorage$DeferredConfigurableExtensionHolder.configureNow(ExtensionsStorage.java:225)
        at org.gradle.api.internal.plugins.ExtensionsStorage$DeferredConfigurableExtensionHolder.get(ExtensionsStorage.java:204)
        at org.gradle.api.internal.plugins.ExtensionsStorage.getAsMap(ExtensionsStorage.java:56)
        at org.gradle.api.internal.plugins.DefaultConvention$ExtensionsDynamicObject.getProperties(DefaultConvention.java:286)
        at org.gradle.internal.metaobject.CompositeDynamicObject.getProperties(CompositeDynamicObject.java:79)
        at org.gradle.api.internal.project.DefaultProject$4.create(DefaultProject.java:1029)
        at org.gradle.api.internal.project.DefaultProject$4.create(DefaultProject.java:1027)
        at org.gradle.util.SingleMessageLogger.whileDisabled(SingleMessageLogger.java:240)
        at org.gradle.api.internal.project.DefaultProject.getProperties(DefaultProject.java:1027)
        at org.jfrog.gradle.plugin.artifactory.extractor.GradleArtifactoryClientConfigUpdater.fillProperties(GradleArtifactoryClientConfigUpdater.java:141)
        at org.jfrog.gradle.plugin.artifactory.extractor.GradleArtifactoryClientConfigUpdater.update(GradleArtifactoryClientConfigUpdater.java:61)
        at org.jfrog.gradle.plugin.artifactory.extractor.GradleArtifactoryClientConfigUpdater$update.call(Unknown Source)
        at org.jfrog.gradle.plugin.artifactory.extractor.listener.ProjectsEvaluatedBuildListener.evaluate(ProjectsEvaluatedBuildListener.groovy:56)
        at org.jfrog.gradle.plugin.artifactory.extractor.listener.ProjectsEvaluatedBuildListener$_afterEvaluate_closure1.doCall(ProjectsEvaluatedBuildListener.groovy:44)
        at org.jfrog.gradle.plugin.artifactory.extractor.listener.ProjectsEvaluatedBuildListener.afterEvaluate(ProjectsEvaluatedBuildListener.groovy:43)
        at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
        at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
        at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:370)
        at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:352)
        at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)

Downgrading build-info-extractor-gradle to 4.6.2 does not crash, but nothing gets published when running artifactoryPublish.

Could not find method getByName() for arguments [releaseRuntimeElements, [], []] on configuration container of type org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer

Gradle 4.8
Android build tools 3.1.3

Gradle fails with the following exception:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':framework:kodein-di-framework-android:generateMetadataFileForKodeinPublication'.
> Could not find method getByName() for arguments [releaseRuntimeElements, [], []] on configuration container of type org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.

* Try:
Run with --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':framework:kodein-di-framework-android:generateMetadataFileForKodeinPublication'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
        at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
        at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:262)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$ExecuteTaskAction.execute(DefaultTaskExecutionGraph.java:246)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:136)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.execute(DefaultTaskPlanExecutor.java:201)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.executeWithTask(DefaultTaskPlanExecutor.java:192)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method getByName() for arguments [releaseRuntimeElements, [], []] on configuration container of type org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.
        at org.gradle.internal.metaobject.AbstractDynamicObject.methodMissingException(AbstractDynamicObject.java:179)
        at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:164)
        at org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer_Decorated.invokeMethod(Unknown Source)
        at digital.wup.android_maven_publish.AndroidVariantLibrary$RuntimeUsage.getCapabilities(AndroidVariantLibrary.groovy:164)
        at org.gradle.api.publish.internal.ModuleMetadataFileGenerator.writeCapabilities(ModuleMetadataFileGenerator.java:461)
        at org.gradle.api.publish.internal.ModuleMetadataFileGenerator.writeVariantHostedInThisModule(ModuleMetadataFileGenerator.java:289)
        at org.gradle.api.publish.internal.ModuleMetadataFileGenerator.writeVariants(ModuleMetadataFileGenerator.java:195)
        at org.gradle.api.publish.internal.ModuleMetadataFileGenerator.writeComponentWithVariants(ModuleMetadataFileGenerator.java:129)
        at org.gradle.api.publish.internal.ModuleMetadataFileGenerator.generateTo(ModuleMetadataFileGenerator.java:98)
        at org.gradle.api.publish.tasks.GenerateModuleMetadata.run(GenerateModuleMetadata.java:165)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:794)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:761)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:317)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:309)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:97)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
        ... 30 more

Not possible to publish description in POM.XML

I use Gradle 4.5 and digital.wup:android-maven-publish:3.3.0

When I add description, it doesn't work. (It worked earlier, when we didn't use digital.wup plugin).

publishing {
    publications {
        mavenCustom(MavenPublication) {
            groupId 'com.our.lib'
            artifactId calculateArtifact(project)
            artifact sourceJar
            version libVersion

            from components.android
            pom.withXml {
                asNode().appendNode('description', "Built on commit: ")
            }
        }
    }
}

In resulting pom.xmls there is no description :-(

Version 3.6.3 of this plugin is incompatible with version 1.4.30 of Kotlin

I just tried upgrading Kotlin to the latest version (1.4.30) in a couple of my Android library projects which use this plugin and I'm seeing the publish and publishToMavenLocal Gradle tasks are failing with an error message as follows:

Invalid publication 'QuranSDK': multiple artifacts with the identical extension and classifier ('aar', 'null').

You can see this error if you clone the upgrade-kotlin branch of the quran-sdk GitHub repository and run the publishToMavenLocal Gradle task.

Compatibility with Gradle 4.8

java.lang.AbstractMethodError: digital.wup.android_maven_publish.AndroidVariantLibrary$CompileUsage.getGlobalExcludes()Ljava/util/Set;
        at org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.populateFromComponent(DefaultMavenPublication.java:246)
        at org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.getPublishableArtifacts(DefaultMavenPublication.java:357)
        at org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication_Decorated.getPublishableArtifacts(Unknown Source)
        at org.gradle.api.publish.maven.tasks.AbstractPublishToMaven$1.call(AbstractPublishToMaven.java:46)
        at org.gradle.api.publish.maven.tasks.AbstractPublishToMaven$1.call(AbstractPublishToMaven.java:43)
        at org.gradle.util.GUtil.uncheckedCall(GUtil.java:458)
        at org.gradle.api.internal.file.collections.BuildDependenciesOnlyFileCollectionResolveContext.add(BuildDependenciesOnlyFileCollectionResolveContext.java:73)
        at org.gradle.api.internal.file.collections.BuildDependenciesOnlyFileCollectionResolveContext.add(BuildDependenciesOnlyFileCollectionResolveContext.java:75)
        at org.gradle.api.internal.tasks.TaskPropertyFileCollection.visitContents(TaskPropertyFileCollection.java:53)
        at org.gradle.api.internal.file.CompositeFileCollection.visitDependencies(CompositeFileCollection.java:187)
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext$TaskGraphImpl.getNodeValues(CachingTaskDependencyResolveContext.java:89)
        at org.gradle.internal.graph.CachingDirectedGraphWalker$GraphWithEmpyEdges.getNodeValues(CachingDirectedGraphWalker.java:211)
        at org.gradle.internal.graph.CachingDirectedGraphWalker.doSearch(CachingDirectedGraphWalker.java:121)
        at org.gradle.internal.graph.CachingDirectedGraphWalker.findValues(CachingDirectedGraphWalker.java:73)
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.doGetDependencies(CachingTaskDependencyResolveContext.java:76)
        at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.getDependencies(CachingTaskDependencyResolveContext.java:60)
[...]

What am I missing?

This seems pretty straight forward, but apparently I'm not understanding something or am missing something. I've added the plugin to my android library and tried to test by publishing to maven local and am getting the following error.

Could not get unknown property 'android' for SoftwareComponentInternal set of type org.gradle.api.internal.component.DefaultSoftwareComponentContainer.

My build.gradle file has the following in it.

publishing.publications {
mavenAar(MavenPublication) {
from components.android
}
}

Thanks in advance for any advice or suggestions.

Cannot compare value: java-runtime or java-api error

I am trying to configure the plugin, but I get these errors with this:

    publications {
        mavenAar(MavenPublication) {
            from components.android
        }
    }

Exception thrown while executing model rule: PublishingPlugin.Rules#publishing(ExtensionContainer)
Cannot compare value: java-runtime

and another similar error with this:

    publications {
        android.libraryVariants.all { variant ->
   "maven${variant.name.capitalize()}Aar"(MavenPublication) {
                from components.findByName("android${variant.name.capitalize()}")
                groupId 'digital.wup.test-publish'
                artifactId 'test-publish'
                version "1.0.0-${variant.name}"
            }
        }
    }

Exception thrown while executing model rule: PublishingPlugin.Rules#publishing(ExtensionContainer)
Cannot compare value: java-api

Additional info:
Gradle: 4.1
classpath "com.android.tools.build:gradle:3.0.1"
classpath "digital.wup:android-maven-publish:3.1.1"

Trace:

* Exception is:
org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':chegg-sdk'.
        at org.gradle.execution.TaskNameResolver.discoverTasks(TaskNameResolver.java:100)
        at org.gradle.execution.TaskNameResolver.selectWithName(TaskNameResolver.java:60)
        at org.gradle.execution.TaskSelector.getSelection(TaskSelector.java:103)
        at org.gradle.execution.TaskSelector.getSelection(TaskSelector.java:81)
        at org.gradle.execution.commandline.CommandLineTaskParser.parseTasks(CommandLineTaskParser.java:42)
        at org.gradle.execution.TaskNameResolvingBuildConfigurationAction.configure(TaskNameResolvingBuildConfigurationAction.java:44)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$000(DefaultBuildConfigurationActionExecuter.java:25)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.proceed(DefaultBuildConfigurationActionExecuter.java:54)
        at org.gradle.execution.DefaultTasksBuildExecutionAction.configure(DefaultTasksBuildExecutionAction.java:44)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$000(DefaultBuildConfigurationActionExecuter.java:25)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.proceed(DefaultBuildConfigurationActionExecuter.java:54)
        at org.gradle.execution.ExcludedTaskFilteringBuildConfigurationAction.configure(ExcludedTaskFilteringBuildConfigurationAction.java:47)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:48)
        at org.gradle.execution.DefaultBuildConfigurationActionExecuter.select(DefaultBuildConfigurationActionExecuter.java:36)
        at org.gradle.initialization.DefaultGradleLauncher$CalculateTaskGraph.run(DefaultGradleLauncher.java:265)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
        at org.gradle.initialization.DefaultGradleLauncher.constructTaskGraph(DefaultGradleLauncher.java:173)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:128)
        at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:107)
        at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:78)
        at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:75)
        at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:152)
        at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:100)
        at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:75)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$1.run(RunAsBuildOperationBuildActionRunner.java:43)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40)
        at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:45)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:29)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:71)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:45)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:51)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:32)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:64)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:29)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:42)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:58)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:33)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.model.internal.core.ModelRuleExecutionException: Exception thrown while executing model rule: PublishingPlugin.Rules#publishing(ExtensionContainer)
        at org.gradle.model.internal.registry.DefaultModelRegistry.fireAction(DefaultModelRegistry.java:490)
        at org.gradle.model.internal.registry.DefaultModelRegistry.access$700(DefaultModelRegistry.java:71)
        at org.gradle.model.internal.registry.DefaultModelRegistry$RunModelAction.apply(DefaultModelRegistry.java:1184)
        at org.gradle.model.internal.registry.DefaultModelRegistry.transitionTo(DefaultModelRegistry.java:390)
        at org.gradle.model.internal.registry.DefaultModelRegistry.transition(DefaultModelRegistry.java:469)
        at org.gradle.model.internal.registry.DefaultModelRegistry.atStateOrMaybeLater(DefaultModelRegistry.java:233)
        at org.gradle.model.internal.registry.DefaultModelRegistry.atStateOrLater(DefaultModelRegistry.java:220)
        at org.gradle.api.internal.tasks.DefaultTaskContainer.discoverTasks(DefaultTaskContainer.java:226)
        at org.gradle.execution.TaskNameResolver.discoverTasks(TaskNameResolver.java:98)
        ... 83 more
Caused by: com.google.common.collect.Ordering$IncomparableValueException: Cannot compare value: java-runtime
        at com.google.common.collect.ExplicitOrdering.rank(ExplicitOrdering.java:46)
        at com.google.common.collect.ExplicitOrdering.compare(ExplicitOrdering.java:40)
        at org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication$1.compare(DefaultMavenPublication.java:74)
        at org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication$1.compare(DefaultMavenPublication.java:70)
        at org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.getSortedUsageContexts(DefaultMavenPublication.java:146)
        at org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication.from(DefaultMavenPublication.java:123)
        at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:479)
        at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:191)
        at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
        at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
        at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:59)
        at build_el0yhq8rby0szlc9mxm9gsbup$_run_closure1$_closure5$_closure15$_closure16.doCall(/Users/gavriel/work/android-chegg-sdk/build.gradle:113)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
        at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160)
        at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
        at org.gradle.util.ConfigureUtil$1.execute(ConfigureUtil.java:123)
        at org.gradle.api.internal.AbstractPolymorphicDomainObjectContainer.create(AbstractPolymorphicDomainObjectContainer.java:61)
        at org.gradle.api.internal.PolymorphicDomainObjectContainerConfigureDelegate._configure(PolymorphicDomainObjectContainerConfigureDelegate.java:44)
        at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:68)
        at org.gradle.internal.metaobject.BeanDynamicObject$GroovyObjectAdapter.invokeOpaqueMethod(BeanDynamicObject.java:579)
        at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:506)
        at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:191)
        at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:80)
        at build_el0yhq8rby0szlc9mxm9gsbup$_run_closure1$_closure5$_closure15.doCall(/Users/gavriel/work/android-chegg-sdk/build.gradle:105)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
        at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160)
        at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
        at org.gradle.util.ConfigureUtil$1.execute(ConfigureUtil.java:123)
        at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:136)
        at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:154)
        at org.gradle.api.DomainObjectCollection$all$0.call(Unknown Source)
        at build_el0yhq8rby0szlc9mxm9gsbup$_run_closure1$_closure5.doCall(/Users/gavriel/work/android-chegg-sdk/build.gradle:102)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
        at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160)
        at org.gradle.util.ConfigureUtil.configureSelf(ConfigureUtil.java:148)
        at org.gradle.api.internal.AbstractNamedDomainObjectContainer.configure(AbstractNamedDomainObjectContainer.java:79)
        at org.gradle.api.internal.AbstractNamedDomainObjectContainer.configure(AbstractNamedDomainObjectContainer.java:34)
        at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:104)
        at org.gradle.util.ConfigureUtil$1.execute(ConfigureUtil.java:123)
        at org.gradle.api.publish.internal.DefaultPublishingExtension.publications(DefaultPublishingExtension.java:48)
        at org.gradle.api.publish.internal.DefaultPublishingExtension_Decorated.publications(Unknown Source)
        at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:479)
        at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:191)
        at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)
        at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
        at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:59)
        at build_1gvzlm552q710qzynu4eozjvu$_run_closure5.doCall(/Users/gavriel/work/android-chegg-sdk/chegg-sdk/build.gradle:205)
        at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
        at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160)
        at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
        at org.gradle.util.ConfigureUtil$1.execute(ConfigureUtil.java:123)
        at org.gradle.internal.ImmutableActionSet$CompositeSet.execute(ImmutableActionSet.java:196)
        at org.gradle.internal.MutableActionSet.execute(MutableActionSet.java:35)
        at org.gradle.api.internal.plugins.ExtensionsStorage$DeferredConfigurableExtensionHolder.configureNow(ExtensionsStorage.java:211)
        at org.gradle.api.internal.plugins.ExtensionsStorage$DeferredConfigurableExtensionHolder.get(ExtensionsStorage.java:190)
        at org.gradle.api.internal.plugins.ExtensionsStorage.getByType(ExtensionsStorage.java:78)
        at org.gradle.api.internal.plugins.DefaultConvention.getByType(DefaultConvention.java:172)
        at org.gradle.api.internal.plugins.DefaultConvention.getByType(DefaultConvention.java:167)
        at org.gradle.api.publish.plugins.PublishingPlugin$Rules.publishing(PublishingPlugin.java:79)
        at org.gradle.model.internal.method.WeaklyTypeReferencingMethod.invoke(WeaklyTypeReferencingMethod.java:100)
        at org.gradle.model.internal.inspect.DefaultModelRuleInvoker.invoke(DefaultModelRuleInvoker.java:36)
        at org.gradle.model.internal.inspect.UnmanagedModelCreationRuleExtractor$UnmanagedElementCreationAction.execute(UnmanagedModelCreationRuleExtractor.java:77)
        at org.gradle.model.internal.inspect.ModelRuleExtractor$DefaultExtractedRuleSource$ContextualizedModelAction.execute(ModelRuleExtractor.java:515)
        at org.gradle.model.internal.registry.DefaultModelRegistry$4.run(DefaultModelRegistry.java:485)
        at org.gradle.model.internal.registry.RuleContext.run(RuleContext.java:42)
        at org.gradle.model.internal.registry.DefaultModelRegistry.fireAction(DefaultModelRegistry.java:482)
        ... 91 more

add apk publishing

Currently only the projects aar files are uploaded to maven. Adding support for publishing apk's as well, would be a great improvement.

Not working with Gradle 4.2

Not working with Gradle 4.2.

FAILURE: No such property: FOR_COMPILE for class: org.gradle.api.attributes.Usage

(Using android-maven-publish version 2.0.0)

Gradle 4.+ support

Gradle 4 has been out a few weeks now and Gradle 4.1 shipped just now.

Would be nice to see this plugin add support by the time the android gradle plugin 3.0 version hits stable as it will require gradle 4.1 as a minimum version.

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.