首页 文章

Gradle无法下载Kotlin存储库

提问于
浏览
-2

我正在使用 Gradle 构建 Kotlin simple Hello-Worl

我的 build.gradle 是:

/*
 * This build file was generated by the Gradle 'init' task.
 *
 * This generated file contains a commented-out sample Java project to get you started.
 * For more details take a look at the Java Quickstart chapter in the Gradle
 * user guide available at https://docs.gradle.org/4.3.1/userguide/tutorial_java_projects.html
 */

 // Apply the java plugin to add support for Kotlin

apply plugin: 'kotlin'


/*
plugins {
    id "org.jetbrains.kotlin.jvm" version "1.1.60"
}
*/

buildscript {
    ext.kotlin_version = '1.1.60'
// In this section you declare where to find the dependencies of your project
    repositories {
       mavenCentral()
      // jcenter()
    }
// In this section you declare the dependencies for your production and test code
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

sourceSets {
    main.kotlin.srcDirs += 'src/kotlin'
    main.resources.srcDirs += 'src/resources'
}

    dependencies {
        compile 'org.slf4j:slf4j-api:1.7.7'
        compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
        testCompile 'junit:junit:4.12'
    }

    kotlin {
        experimental {
            coroutines 'enable'
        }
    }

    compileKotlin {
        kotlinOptions.suppressWarnings = true
    }

    compileKotlin {
        kotlinOptions {
            suppressWarnings = true
        }
    }

Main.kt 是:

fun main(args: Array<String>) {
    println("kotlin!")
}

在运行 Gradle buil 时,我收到以下错误:

enter image description here

注意: - 我是 gradle 的新手,所以 Build 如下2步骤:

第1步:
enter image description here

第2步:
enter image description here

UPDATE

根据第一个答案,我尝试在本地获取文件,我创建了另一个名为 lib 的文件夹并将* .jar文件下载到其中,所以我得到了如下的 gradle.build

buildscript {
    ext.kotlin_version = '1.1.60'
    repositories {
        flatDir {
           dirs 'libs'
        }
    }
    dependencies {
        classpath fileTree(include: ['*.jar'], dir: 'libs')
        classpath files('kotlin-gradle-plugin-1.1.60.jar')
    }
}

apply plugin: 'kotlin'

sourceSets {
    main.kotlin.srcDirs += 'src/kotlin'
    main.resources.srcDirs += 'src/resources'
}

dependencies {
    compile 'org.slf4j:slf4j-api:1.7.7'
    compile name: 'kotlin-stdlib-1.1.60'
    testCompile 'junit:junit:4.12'
}

kotlin {
    experimental {
        coroutines 'enable'
    }
}

compileKotlin {
    kotlinOptions.suppressWarnings = true
}

compileKotlin {
    kotlinOptions {
        suppressWarnings = true
    }
}

在修改后的结构和我得到的新错误之下:

enter image description here

UPDATE

U将所有必需的存储库.jar和.pom复制到文件夹:

C:\用户\ .m2目录\库\组织\ JetBrains公司\

我复制了例如:... \ kotlin \ kotlin-std \ 1.1.60 \ kotlin-stdlib-1.1.60.jar和... \ annotations \ 13.0 \ annotations-13.0.jar

并使用

mavenLocal()

但仍然得到相同的错误:(

1 回答

  • 1

    我发现问题与我们的公司代理一起阻止了这样的事情,所以我通过在我的笔记本电脑中下载所需的存储库然后将它们复制到公司的一个解决了这个问题 .

    首先,我创建了一个单独的文件夹,命名为 jars .

    之后,我从here下载了所需的文件并将其保存在 jars 文件夹中 .

    然后我使用以下命令将其安装到本地存储库中:

    mvn install:install-file -Dfile=utility.jar -DgroupId=com.company -DartifactId=utility -Dversion=0.0.1 -Dpackaging=jar
    

    如:

    mvn install:install-file -Dfile=kotlin-stdlib-1.1.60.jar -DgroupId=org.jetbrains.kotlin -DartifactId=kotlin-stdlib -Dversion=1.1.60 -Dpackaging=jar
    

    Notes:

    要正确执行上述操作,需要从here下载 maven 并将其添加到 path .

    上面的命令需要从 jars 文件夹运行,该文件夹包含下载的存储库:

    enter image description here

    然后我发现存储库已下载到 C:\Users\<user>\.m2\ 文件夹中:

    enter image description here

    将它们复制到我的办公室笔记本电脑后,我从 mavenLocal() 打电话给他们:

    repositories {
        mavenCentral()
        mavenLocal()
    }
    
    dependencies {
        compile ("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version")
    }
    

    UPDATE

    要在一次拍摄中下载完整的存储库而不是逐个下载所需的文件,则可以使用以下命令:

    mvn dependency:get -DrepoUrl=something -Dartifact=group:artifact:version
    

    如:

    mvn dependency:get -DrepoUrl=https://mvnrepository.com/artifact/org.jetbrains.kotlin -Dartifact=org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.60
    

    由于某种原因,3个文件无法下载,所以我按照初步说明手动下载并安装,文件是:

    org.jetbrains.kotlin:kotlin-android-extensions:jar:original:1.1.60 => here

    org.jetbrains.kotlin:kotlin-compiler-runner:jar:original:1.1.60 => here

    org.jetbrains.kotlin:kotlin-build-common:jar:tests:1.1.60 => here

    并使用以下命令安装它们:

    mvn install:install-file -Dfile=kotlin-android-extensions-1.1.60.jar -DgroupId=org.jetbrains.kotlin -DartifactId=kotlin-android-extensions -Dversion=1.1.60 -Dpackaging=jar
    
    mvn install:install-file -Dfile=kotlin-compiler-runner-1.1.60.jar -DgroupId=org.jetbrains.kotlin -DartifactId=kotlin-compiler-runner -Dversion=1.1.60 -Dpackaging=jar
    
    mvn install:install-file -Dfile=kotlin-build-common-1.1.60.jar -DgroupId=org.jetbrains.kotlin -DartifactId=kotlin-build-common -Dversion=1.1.60 -Dpackaging=jar
    

    考虑到以上所做的一切,以下 build.gradle 对我来说非常适合:

    // set up the kotlin-gradle plugin
    buildscript {
        ext.kotlin_version = '1.1.60'
        repositories {
           mavenLocal()    //    mavenCentral()
        }
        dependencies {
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    
    // apply the kotlin-gradle plugin
    apply plugin: "kotlin"
    
    // add kotlin-stdlib dependencies.
    repositories {
        mavenLocal()  //  mavenCentral()
    }
    
    dependencies {
        //dependencies from a remote repositor
        compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    
      //local file, that are not coming from repository, let's say my own jar files
      compile files('libs/Display.jar')
      compile fileTree(dir: 'libs', include: '*.jar')
    }
    
    jar {
        manifest {
            //Define mainClassName as: '[your_namespace].[your_arctifact]Kt'
            attributes ('Main-Class': 'MainKt', "Implementation-Title": "Gradle",
                       "Implementation-Version": 1)
        }
        // NEW LINE HERE !!!
        from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    }
    
    sourceSets {
        main.kotlin.srcDirs += 'src/kotlin'
        main.resources.srcDirs += 'src/resources'
    }
    
    kotlin {
        experimental.coroutines 'enable'
    }
    
    compileKotlin {
        kotlinOptions.jvmTarget= 1.8  // optional, Minimum jvmTarget of 1.8 needed since Kotlin 1.1
        kotlinOptions.suppressWarnings = true
    }
    

    enter image description here

相关问题