Как я могу сделать банку через Gradle, включая зависимость - PullRequest
0 голосов
/ 09 октября 2019

У меня есть модуль, написанный на kotlin, теперь я должен превратить этот модуль в банку. Я должен включить kotlin-stlib-1.3.50.jar в мой jar, чтобы он мог успешно работать в Android. Но возникает вопрос, что приложение, которое вызывает мой jar, также написано на kotlin, и у него есть другая версия kotlin-stdlib. Так как я могу решить это?

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
plugins {
id('com.android.library')
id('kotlin-android')
id('kotlin-android-extensions')
}


android {
compileSdkVersion 28
defaultConfig {
    minSdkVersion 27
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

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

sourceSets {
    main {
        aidl.srcDirs = ['src/main/aidl']
    }
}

configurations.all {
    resolutionStrategy.force 'com.android.support:support-annotations:26.1.0'
}

}

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
//    implementation 'com.android.support:appcompat-v7:28.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.41'
implementation 'com.squareup.okio:okio:2.2.2'
implementation 'androidx.fragment:fragment:1.0.0'
implementation 'com.nex3z:notification-badge:1.0.2'
implementation files('libs/framework.jar')
implementation 'com.nex3z:notification-badge:1.0.2'
implementation 'com.android.support:support-annotations:28.0.0'
}
repositories {
mavenCentral()
}



task createJar(type: Jar){
println(configurations.compile.asPath)
archiveName 'wifisdkn_7_4_2.jar'
from('build/intermediates/javac/release/compileReleaseJavaWithJavac/classes')
from('build/tmp/kotlin-classes/release')

from {
    (zipTree('/home/mi/.gradle/caches/transforms-2/files-2.1/d6bc0306f3ac2741d6328b688ed7b145/jars/classes.jar'))
}

from {
    (zipTree('/home/mi/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/2.2.2/36f483536153f15339a8b48d508e22be7c9c531a/okio-2.2.2.jar'))
}


from{
    (zipTree('/home/mi/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.41/e24bd38de28a326cce8b1f0d61e809e9a92dad6a/kotlin-stdlib-1.3.41.jar'))
}

destinationDir = file('build/libs')
}

createJar.dependsOn(build)

1 Ответ

0 голосов
/ 09 октября 2019

Вам не нужно писать код для этого. просто выполните следующие шаги:

  1. откройте проекты Gradle панель на правой стороне

    Gradle projects pane

  2. Перейти к модулю, для которого вы хотите построить банку. Разверните узел Задачи .

    Task node

  3. Разверните папку Build и дваждынажмите на Действие сборки.

    build action

  4. Процесс сборки будет запущен. После завершения процесса будет сгенерирован JAR / AAr.

  5. Перейдите в каталог модуля, затем следуйте по пути build -> libs -> .jar

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...