生成项目:巨大下载

时间:2017-05-14 10:29:53

标签: gradle libgdx maven-2 sonatype

我使用Libgdx项目生成器创建了我的第一个LibGDX项目。然后我在IntelliJ中打开了项目,它要求我在build.gradle文件中索引存储库。有问题的远程存储库是:

  • Maven2的
  • 所有的oss.sonatype快照
  • oss.sonatype发布的所有

所有这些总计大约5到6 GB的东西,smartJ愉快地开始下载。因为它需要很长时间才能完成,所以我开始浏览其中的一些存储库。通常,使用像gradle这样的repo管理器的重点是,对于您正在使用的库,您不会下载整个内容,只需要下载您需要的部分。但是,sonatype snapshotsreleases充满了大量的文件和许多不同的版本/发行版。

我的问题是:应该是下载所有这些文件还是我错过了什么?有没有办法我只能下载我需要的点点滴滴?

这是我的完整build.gradle:

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        jcenter()
    }
    dependencies {
    }
}

allprojects {
    apply plugin: "eclipse"
    apply plugin: "idea"

    version = '1.0'
    ext {
        appName = "HelloWorld"
        gdxVersion = '1.9.6'
        roboVMVersion = '2.3.0'
        box2DLightsVersion = '1.4'
        ashleyVersion = '1.7.0'
        aiVersion = '1.8.0'
    }

    repositories {
        mavenLocal()
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        maven { url "https://oss.sonatype.org/content/repositories/releases/" }
    }
}

project(":desktop") {
    apply plugin: "java"


    dependencies {
        compile project(":core")
        compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
        compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
        compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"
        compile "com.badlogicgames.gdx:gdx-tools:$gdxVersion"
    }
}

project(":core") {
    apply plugin: "java"


    dependencies {
        compile "com.badlogicgames.gdx:gdx:$gdxVersion"
        compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
    }
}

tasks.eclipse.doLast {
    delete ".project"
}

1 个答案:

答案 0 :(得分:1)

不需要下载所有版本的注入库。

如果使用gradle构建,则只下载所需的工件,仅包含您注入的版本。

索引maven存储库

maven存储库由工件和这些工件的不同版本组成。我的猜测是,当像IntelliJ这样的IDE读取远程存储库时,它将创建一个单独的本地缓存/迷你数据库库名称+机器上的存储库中可用的版本。这是索引部分。这样可以更快地搜索库名称/最新版本等,因为现在正在查询计算机上的索引,而不是每次都访问存储库。

它没有什么重要的,也不会影响你的构建,但是你的IDE只是告诉它,每当它寻找版本/依赖名称(在自动完成等)时,它必须上网并检查这些细节(而不只是检查本地缓存。)

  • 索引的优势 - 搜索速度
  • 缺点 - 你必须确保索引保持最新,否则你不会总是得到最新的搜索结果(新版本等)也不知何故下载5到6 GB是痛苦的。

如果需要,可以通过单击“禁用”来禁用此通知:

  

找到未编制索引的远程maven存储库。禁用...

或在Mac OSX上转到

IntellijIDEA>偏好>外观&行为>通知>未编入索引的maven存储库gradle detection>取消选中

保留Unindexed远程maven repo,每次如果在本地repo中找不到特定版本的工件,则搜索到远程。