0

プロジェクトでローカルにok.io(バージョン1.14.1)を使用しようとしましたが、gradleの要件を満たすのにかなり苦労しました。私のプロジェクトでは、ソースをローカルに含める必要があります。モジュールをインポートできましたが、ビルドを実行しようとすると、このエラーが発生します

Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :okio.
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve project :okio.
Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve project :okio.
Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve project :okio.
Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve project :okio.

すべてのモジュールが同じビルドタイプとフレーバーを持つ必要があると書かれているため、このソリューションが進むべき道だと思っていました。しかし、これは違いはありません。

私の(アプリ)build.gradleは次のようになります

apply plugin: 'com.android.application'

    android {
        compileSdkVersion 19
        buildToolsVersion "27.0.3"

        defaultConfig {
            applicationId "com.some.app.id"
            minSdkVersion 15
            targetSdkVersion 19
            versionCode 1
            versionName "1.0.0"
        }


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

        productFlavors {


        }
        compileOptions {
            targetCompatibility 1.7
            sourceCompatibility 1.7
        }
    }


    dependencies {
    .....
        implementation project(path: ':okio')
    }

ok.io build.gradle は次のようになります

import com.github.jengelman.gradle.plugins.shadow.transformers.DontIncludeResourceTransformer
import com.github.jengelman.gradle.plugins.shadow.transformers.IncludeResourceTransformer

apply plugin: 'java-library'
apply plugin: 'org.jetbrains.kotlin.platform.jvm'
apply plugin: 'ru.vyarus.animalsniffer'
apply plugin: 'me.champeau.gradle.japicmp'
apply plugin: "com.github.johnrengelman.shadow"
apply plugin: 'me.champeau.gradle.jmh'

apply from: "$rootDir/gradle/gradle-mvn-push.gradle"

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

jar {
  manifest {
    attributes('Automatic-Module-Name': 'okio')
  }
}

animalsniffer {
  sourceSets = [sourceSets.main]
}

configurations {
  baseline
}

jmhJar {
  def excludeAllBenchmarkLists = new DontIncludeResourceTransformer()
  excludeAllBenchmarkLists.resource = "META-INF/BenchmarkList"
  transform(excludeAllBenchmarkLists)

  def includeCorrectBenchmarkList = new IncludeResourceTransformer()
  includeCorrectBenchmarkList.resource = "META-INF/BenchmarkList"
  includeCorrectBenchmarkList.file = new File("$rootDir/okio/jvm/build/classes/java/jmh/META-INF/BenchmarkList")
  transform(includeCorrectBenchmarkList)
}

jmh {
  // The JMH plugin currently requires the Shadow plugin also be installed.
  // See: https://github.com/melix/jmh-gradle-plugin/issues/97#issuecomment-374866151
  include = ['com\\.squareup\\.okio\\.benchmarks\\.SelectBenchmark.*']
  duplicateClassesStrategy = 'warn'
}

dependencies {
  signature 'org.codehaus.mojo.signature:java16:1.1@signature'

  expectedBy project(':okio')

  implementation deps.kotlin.stdLib.jdk6
  compileOnly deps.animalSniffer.annotations
  compileOnly deps.jsr305
  testImplementation deps.test.junit
  testImplementation deps.test.assertj
  testImplementation deps.kotlin.test.jdk

  baseline('com.squareup.okio:okio:1.14.1') {
    transitive = false
    force = true
  }

  jmh deps.jmh.core
  jmh deps.jmh.generator
}

task japicmp(type: me.champeau.gradle.japicmp.JapicmpTask, dependsOn: 'jar') {
  oldClasspath = configurations.baseline
  newClasspath = files(jar.archivePath)
  onlyBinaryIncompatibleModified = true
  failOnModification = true
  txtOutputFile = file("$buildDir/reports/japi.txt")
  ignoreMissingClasses = true
  includeSynthetic = true
  classExcludes = [
      'okio.SegmentedByteString', // internal
      'okio.Util', // internal
  ]
  methodExcludes = [
      'okio.ByteString#getByte(int)', // became 'final' in 1.15.0
      'okio.ByteString#size()', // became 'final' in 1.15.0
  ]
}
check.dependsOn(japicmp)

assemble.dependsOn(tasks['jmhJar'])

私のプロジェクトのモジュールの構造は次のようになります

ここに画像の説明を入力

ok.io をローカルに統合する方法、および/または単に「幸せな」モジュール統合を行う方法についてのアドバイスは大歓迎です。

4

0 に答える 0