I am trying to upload a android library automatically into bintray.
I have this app gradle code:
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
ext {
bintrayRepo = 'maven'
bintrayName = 'CurrentCenterPositionMap'
publishedGroupId = 'renatamelo#patriauto.org'
libraryName = 'CurrentCenterPositionMap'
artifact = 'current-center-position-map'
libraryDescription = 'A library to mark the center of a map with moveing animations'
siteUrl = 'https://github.com/leandroBorgesFerreira/CurrentCenterPositionMap'
gitUrl = 'https://github.com/leandroBorgesFerreira/CurrentCenterPositionMap.git'
libraryVersion = '0.8.1'
developerId = 'leandroBorgesFerreira'
developerName = 'Leandro Borges Ferreira'
developerEmail = 'lehen01#gmail.com'
licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
}
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
minSdkVersion 16
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.1'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
repositories {
mavenCentral()
}
// 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'
And this project gradle:
buildscript {
ext.kotlin_version = '1.0.4'
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
// 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
}
But when I run:
./gradlew install
I get this error:
javadoc: error - Illegal package name: "/Users/hinovamobile/Desktop/Leandro/projetinhos/CurrentCenterPositionMap/mapfragmentwrapper/src/main/java/br/com/simplepass/mapfragmentwrapper/MapFragmentWrapper.kt"
1 error
:mapfragmentwrapper:javadoc FAILED
So what I am doing wrong? I'm not sure how to fix this error in the Javadoc...
Try using gradle-fury's scripts to generate javadoc. It does a different version for each android variant, supports umldocs via graphviz, the doc-html folder structure and more. For both Java and Android
Once the scripts are applied to your setup, make the javadocs via
gradlew install -Pprofile=javadoc
https://github.com/gradle-fury/gradle-fury
In your main gradle file, add the following lines:
tasks.withType(Javadoc).all {
enabled = false
}
Note: this will still normally show the javadocs when you press control + space on top of a class or method.
If you want to read more details check this link: https://github.com/novoda/bintray-release/issues/71
Related
I have an android project inside the project I have an android module. I try to publish an maven artifact but I got the next message Publications(s) specified but no publications exist in project :.
My project build.gradle is the next:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = "1.3.72"
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:4.0.0"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
plugins {
id "com.jfrog.bintray" version "1.8.5"
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
My gradle module is the next:
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'maven-publish'
android {
compileSdkVersion 29
buildToolsVersion "30.0.0"
defaultConfig {
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
testImplementation 'junit:junit:4.13'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.7'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.7'
}
afterEvaluate {
publishing {
publications {
// Creates a Maven publication called "release".
release(MavenPublication) {
// Applies the component for the release build variant.
from components.release
// You can then customize attributes of the publication as shown below.
groupId = 'io.github.rockbass2560'
artifactId = 'imageprogress'
version = '1.0.0'
}
}
}
}
def localProperties = new Properties()
localProperties.load(new FileInputStream(rootProject.file("local.properties")))
bintray {
user = localProperties.getProperty("bintray.user")
key = localProperties.getProperty("bintray.apikey")
publications = ['release']
pkg {
repo = 'imageprogress'
name = 'imageprogress'
userOrg = user
licenses = ['Apache-2.0']
vcsUrl = 'https://github.com/rockbass2560/ImageProgress.git'
version {
name = '1.0-Final'
desc = 'First version for ImageProgress plugin'
released = new Date()
vcsTag = '1.0.0'
attributes = ['version': '1','released':true]
}
}
}
I have made tutorials on android page and other pages but I can't get fix the issue.
I am trying to add firebase to a existing application which involves adding:
classpath 'com.google.gms:google-services:4.3.3'
as dependency to the project level build.gradle, and adding:
apply plugin: 'com.google.gms.google-services'
as a plugin to the app level build.gradle.
The project that I am building upon is "Sign users in/out and call the Microsoft Graph from an Android app"
https://learn.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-android
Project level build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
apply from: rootProject.file("gradle/versions.gradle")
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:$rootProject.ext.gradleVersion"
classpath 'com.google.gms:google-services:4.3.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
App level build.gradle
apply plugin: 'com.android.application'
allprojects {
repositories {
mavenCentral()
google()
mavenLocal()
maven {
name "vsts-maven-adal-android"
url "https://identitydivision.pkgs.visualstudio.com/_packaging/AndroidADAL/maven/v1"
credentials {
username System.getenv("ENV_VSTS_MVN_ANDROIDADAL_USERNAME") != null ? System.getenv("ENV_VSTS_MVN_ANDROIDADAL_USERNAME") : project.findProperty("vstsUsername")
password System.getenv("ENV_VSTS_MVN_ANDROIDADAL_ACCESSTOKEN") != null ? System.getenv("ENV_VSTS_MVN_ANDROIDADAL_ACCESSTOKEN") : project.findProperty("vstsMavenAccessToken")
}
}
jcenter()
}
}
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
applicationId "[com.*.*]"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
}
signingConfigs {
debug {
storeFile file("../gradle/debug.keystore")
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
flavorDimensions "main"
productFlavors {
local {
// To be used with android-complete only.
// So that it could look for the 'local' flavor in Broker projects.
matchingFallbacks = ['local']
}
external {}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "androidx.appcompat:appcompat:$rootProject.ext.appCompatVersion"
implementation "com.google.android.material:material:$rootProject.ext.materialVersion"
implementation 'com.google.firebase:firebase-analytics:17.2.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.android.volley:volley:1.1.1'
if (findProject(':msal') != null) {
// For developer team only.
localImplementation project(':msal')
externalImplementation 'com.microsoft.identity.client:msal:1.0.+'
} else {
// Downloads and Builds MSAL from maven central.
implementation 'com.microsoft.identity.client:msal:1.0.+'
}
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.0.0'
}
apply plugin: 'com.google.gms.google-services'
Below is versions.gradle
// Variables for entire project
ext {
// SDK
minSdkVersion = 16
automationAppMinSDKVersion = 21
targetSdkVersion = 27
compileSdkVersion = 28
buildToolsVersion = "28.0.3"
// Plugins
gradleVersion = '3.2.1'
androidMavenGradlePluginVersion = "1.4.1"
// Libraries
annotationVersion = "1.0.0"
appCompatVersion = "1.0.2"
browserVersion = "1.0.0"
dexmakerMockitoVersion = "1.4"
espressoCoreVersion = "3.1.0"
gsonVersion = "2.8.5"
junitVersion = "4.12"
legacySupportV4Version = "1.0.0"
localBroadcastManagerVersion = "1.0.0"
materialVersion = "1.0.0"
mockitoCoreVersion = "2.18.3"
mockitoAndroidVersion = "2.18.3"
multidexVersion = "2.0.1"
powerMockVersion = "1.6.6"
nimbusVersion = "5.7"
runnerVersion = "1.2.0"
rulesVersion = "1.2.0"
// TODO: adal automation test app.
supportLibraryVersion = "27.1.+"
adalLegacy = "1.15.0"
}
Error when syncing project
org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':app'.
Caused by: org.gradle.api.GradleScriptException: A problem occurred evaluating project ':app'.
Caused by: java.lang.NoSuchFieldError: ASCII
at com.android.build.gradle.BasePlugin.checkPathForErrors(BasePlugin.java:1006)
at com.android.build.gradle.BasePlugin.apply(BasePlugin.java:261)
at com.android.build.gradle.AbstractAppPlugin.apply(AbstractAppPlugin.java:122)
at com.android.build.gradle.AppPlugin.apply(AppPlugin.java:43)
I had the same problem. I was able to solve it by using classpath 'com.google.gms:google-services:4.0.0' instead of classpath 'com.google.gms:google-services:4.3.3'. Build this to see another type of error. Then do invalidate cache and restart on Android studio from the File menu. Then on restart, your build should be successful. You might also need to use 'com.google.firebase:firebase-analytics:16.0.0' instead of the current version
I'm trying to create a maven library using Android Studio and bintray but I can't get it working. When I try to upload the lib using gradle bintrayUpload I allways get the following error:
Could not upload to 'https://api.bintray.com/content/company/maven/company-simplename-lib/simplename/company-simplename-lib/lib/0.0.1/lib-0.0.1.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 'company-simplename-lib/lib/0.0.1/lib-0.0.1.pom']
This happens when I try to follow the example bintray has in their github repo.
I have changed my library build.gradle (not the root) to the following:
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
}
}
plugins {
id "com.jfrog.bintray" version "1.4"
}
version = '0.0.1'
allprojects {
repositories {
jcenter()
}
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName '0.0.1'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'
compile 'com.android.support:cardview-v7:23.1.0'
compile 'com.android.support:recyclerview-v7:23.1.0'
}
install {
repositories.mavenInstaller {
pom.project {
name 'EasyGoogle'
description 'A wrapper library for basic functions of Google Play Services APIs'
url 'https://github.com/googlesamples/easygoogle'
inceptionYear '2015'
packaging 'aar'
groupId 'pub.devrel'
artifactId 'android-maven-example'
version '0.1'
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
scm {
connection 'https://github.com/googlesamples/easygoogle.git'
url 'https://github.com/googlesamples/easygoogle'
}
developers {
developer {
name 'Google'
}
}
}
}
bintray {
user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER')
key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY')
configurations = ['archives']
pkg {
repo = 'maven'
name = 'company-simplename-lib'
userOrg = user
licenses = ['Apache-2.0']
vcsUrl = 'http://example.com/android/company-simplename-lib.git'
version {
name = 'simplename'
desc = 'test build'
vcsTag = '0.0.1'
attributes = ['gradle-plugin': 'com.use.less:com.use.less.gradle:gradle-useless-plugin']
}
}
}
task wrapper(type: Wrapper) {
gradleVersion = '2.4'
}
Is someone able to see what I'm doing wrong? Becasue I can't and I can't find any good documentation about this either.
Please go through below blog , it clearly explain everything.
http://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en
If you still face issue of uploading pom file then make sure
libraryName , artifact and module name should be same.
I got it working by removing the install part from the gradle file so it looks like this:
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
}
}
plugins {
id "com.jfrog.bintray" version "1.4"
}
version = '0.0.4'
allprojects {
repositories {
jcenter()
}
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName '0.0.4'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'
compile 'com.android.support:cardview-v7:23.1.0'
compile 'com.android.support:recyclerview-v7:23.1.0'
}
bintray {
user = project.hasProperty('bintrayUser') ? project.property('bintrayUser') : System.getenv('BINTRAY_USER')
key = project.hasProperty('bintrayApiKey') ? project.property('bintrayApiKey') : System.getenv('BINTRAY_API_KEY')
configurations = ['archives']
pkg {
repo = 'maven'
name = 'company-simplename-lib'
userOrg = user
licenses = ['Apache-2.0']
vcsUrl = 'http://gitlab.company-servic.es/android/company-simplename-lib.git'
version {
name = 'simplename'
desc = 'test build'
vcsTag = '0.0.4'
attributes = ['gradle-plugin': 'com.use.less:com.use.less.gradle:gradle-useless-plugin']
}
}
}
task wrapper(type: Wrapper) {
gradleVersion = '2.4'
}
I want to upload a library to Maven/BinTray through gradle. After a long period of trial and error, I managed to upload it.
As you can see, the resulting package is "app" instead of "libraryName".
Here is my build.gradle (top level)
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'org.codehaus.groovy:groovy-backports-compat23:2.3.5'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
Here is my build.gradle (app level):
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "23.0.0 rc3"
defaultConfig {
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
}
ext {
bintrayRepo = 'maven'
bintrayName = [...]
publishedGroupId = [...]
libraryName = [...]
artifact = 'libraryName'
libraryDescription = [...]
siteUrl = [...]
gitUrl = [...]
libraryVersion = '1.0'
developerId = [...]
developerName = [...]
developerEmail = [...]
licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
}
apply from: 'https://raw.githubusercontent.com/smasoumi/Bintray/master/install.gradle'
apply from: 'https://raw.githubusercontent.com/smasoumi/Bintray/master/bintray.gradle'
Here is my settings.gradle:
include ':app'
rootProject.name = 'libraryName'
Things I have tried:
Setting the rootProject.name ="..." as specified in the android-maven-gradle documentation. Did not work.
Adding "artifact" in the ext {} - Did not work.
Setting the artifact name same as rootProject.name. Did not work.
Has anyone encountered this problem and can help me? Thank you!
I am sorry if I am being too stupid but I just can't make it work... I have an Android Module Project in AS that I want to upload to JCenter - using gradle bintray plugin from JFrog. I follow this tutorial in order to create the repository on bintray and I ended up with the following build.gradle for the module:
apply plugin: 'com.android.library'
apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.android-maven'
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty('bintray.user')
key = properties.getProperty('bintray.apikey')
configurations = ['published', 'archives']
dryRun = false
publish = true
pkg {
repo = 'maven'
name = 'custom-searchable'
desc = 'This repository contains a library that aims to provide a custom searchable interface for android applications'
websiteUrl = 'https://github.com/...'
issueTrackerUrl = 'https://github.com/.../issues'
vcsUrl = 'https://github.com/....git'
licenses = ['The Apache Software License, Version 2.0']
labels = ['android', 'searchable', 'interface', 'layout']
publicDownloadNumbers = true
version {
name = '1.0'
desc = 'Bintray integration test'
vcsTag = '1.0'
}
}
}
ext {
bintrayRepo = 'maven'
bintrayName = 'custom-searchable'
publishedGroupId = 'br.com.edsilfer'
libraryName = 'CustomSearchable'
artifact = 'custom-searchable'
libraryDescription = 'This repository contains a library that aims to provide a custom searchable interface for android applications'
siteUrl = 'https://github.com/...'
gitUrl = 'https://github.com/....git'
libraryVersion = '1.0'
developerId = '...'
developerName = '...'
developerEmail = '...'
licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
}
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 22
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:recyclerview-v7:21.0.3'
}
And this one for the project:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
After running the task gradle bintrayUpload (it finishes sucessfully) my repository in bintray looks like that:
And when you open the unspecified folder you'll find this:
So questions!
Why version is being upload like unspecifiend?
I can't compile my project with the given group id:artifact:version, when trying to build it on AS it says that it fails to resolve the path to the artifact.
Any help will be appreciated!
You are using the standard configuration provided by the gradle plugin, which do not specify library version.
I'm using the publication instead:
...
apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'
...
bintray {
...
publications = ['Publication']
pkg {
...
}
}
publishing {
publications {
Publication(MavenPublication) {
artifact jar
groupId 'com.lib'
artifactId 'help-er'
version '0.1'
}
}
}
If you want to use configurations check this question: Publish on bintray using the gradle-bintray-plugin