gradle multiproject with different jdks,source source

时间:2015-10-25 02:08:52

标签: android spring gradle

java中有3个项目:android app,backend api,backend server。我在android studio中得到dex错误。 com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)因为android不能用1.8而spring需要1.8。 Android应用程序和后端服务器都依赖于后端api。该应用程序应使用1.7编译,后端服务器应编译为1.8。

这意味着api应该用1.7和1.8编译。

我的第一次尝试是创建2个不同的工件,但它不起作用。

这是我的配置:

settings.gradle

include ':backend:api', ':app', ':backend:server'

后端/ API /的build.gradle

apply plugin: 'java'


sourceSets {
    main1_7
}

compileJava {
    targetCompatibility = 1.8
}

compileMain1_7Java {
    targetCompatibility = 1.7
}

jar {
    archiveName = "api-jdk1.8.jar"
}

task jarMain1_7(type: Jar) {
    archiveName 'api-jdk1.7.jar'
    from sourceSets.main.output
}

configurations {
    archives1_7
}

artifacts {
    archives1_7 jarMain1_7
}

应用/的build.gradle

// ...
android {
    // ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

dependencies {
    compile project(path: ':backend:api', configuration: 'archives1_7')
    // ...
}

第二次尝试是将api targetCompatibility设置为1.7

后端/ API /的build.gradle

apply plugin: 'java'

compileJava {
    targetCompatibility = 1.7
}

但这给了我javacTask: target release 1.7 conflicts with default source release 1.8

我不知道如何解决它:(。请帮助我。 非常感谢你。

0 个答案:

没有答案