Android поколение Gradle jar - PullRequest
       9

Android поколение Gradle jar

1 голос
/ 10 апреля 2020

У меня есть проект Android с рабочим файлом build.gradle. Это используется для создания Android приложения. Кроме того, теперь я хотел бы добавить свой код сервера (обычный java) в этот проект и настроить файл build.gradle для запуска / запуска приложения эмулятора, как обычно, а также создать файл jar кода сервера, который Я могу развернуться на своем сервере.

Я новичок в Gradle и Groovy, поэтому я не уверен в том, как правильно написать задачи для достижения моей цели, как описано выше. Я бы очень признателен за помощь в настройке этого файла сборки. Я знаю, что мне понадобятся плагины jar и java, но не могу понять, как интегрировать все в сборку Android.

Что у меня есть в (рабочем) файле сборки :

apply plugin: 'com.android.application'
apply plugin: 'jacoco'

android {
    compileSdkVersion 29
    buildToolsVersion '29.0.3'
    defaultConfig {
        applicationId "com.example.myapp"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
}

task jacocoTestReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') {

    reports {
        xml.enabled = true
        html.enabled = true
    }

    def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*']
    def debugTree = fileTree(dir: "${buildDir}/intermediates/javac/debug", excludes: fileFilter)
    def mainSrc = "${project.projectDir}/src/main/java"

    sourceDirectories = files([mainSrc])
    classDirectories = files([debugTree])
    executionData = files("${buildDir}/jacoco/testDebugUnitTest.exec")
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'

    // https://mvnrepository.com/artifact/com.esotericsoftware/kryonet
    implementation 'com.esotericsoftware:kryonet:2.22.0-RC1'
}
...