将maven存储库添加到build.gradle

And*_*rdo 109 android gradle maven achartengine android-studio

我在Android Studio中为build.gradle添加了一个自定义maven存储库,但未找到依赖项

Maven存储库和依赖项

<repository>
    <id>achartengine</id>
    <name>Public AChartEngine repository</name>
    <url>https://repository-achartengine.forge.cloudbees.com/snapshot/</url>
</repository>

<dependency>
    <groupId>org.achartengine</groupId>
    <artifactId>achartengine</artifactId>
    <version>1.2.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

的build.gradle

buildscript {
    repositories {
        mavenCentral()
        maven {
            url "https://repository-achartengine.forge.cloudbees.com/snapshot/"
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile group: 'org.achartengine', name: 'achartengine', version: '1.2.0'
}

android {
    compileSdkVersion 19
    buildToolsVersion "19"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}
Run Code Online (Sandbox Code Playgroud)

Android Studio中的错误消息:

A problem occurred configuring root project 'My-MobileAndroid'.
> Failed to notify project evaluation listener.
> Could not resolve all dependencies for configuration ':_DebugCompile'.
  > Could not find org.achartengine:achartengine:1.2.0.
    Required by:
        :My-MobileAndroid:unspecified
Run Code Online (Sandbox Code Playgroud)

我在build.gradle中缺少什么?

Gab*_*tti 153

apply plugin: 'com.android.application'
Run Code Online (Sandbox Code Playgroud)

你应该添加这个:

  repositories {
        mavenCentral()
        maven {
            url "https://repository-achartengine.forge.cloudbees.com/snapshot/"
        }
    }
Run Code Online (Sandbox Code Playgroud)

@Benjamin解释了原因.

如果您有认证的maven,您可以使用:

repositories {
            mavenCentral()
            maven {
               credentials {
                   username xxx
                   password xxx
               }
               url    'http://mymaven/xxxx/repositories/releases/'
            }
}
Run Code Online (Sandbox Code Playgroud)

重要的是订单.

  • 我们如何在gradle文件中添加cloudbees身份验证? (6认同)

Ben*_*hko 84

您需要在外部定义存储库buildscript.该buildscript配置仅阻止树立库和依赖关系构建脚本的类路径,但不是你的应用程序.

  • 非常重要。在这个上浪费了15分钟 (3认同)

Mic*_*cro 33

Android Studio用户:

如果您想使用成绩,请访问http://search.maven.org/并搜索您的maven回购.然后,单击"最新版本",在左下角的详细信息页面中,您将看到"Gradle",然后您可以将该链接复制/粘贴到应用程序的build.gradle中.

在此输入图像描述


Mah*_*zad 11

这是针对Kotlin DSL (build.gradle.kts) 的:

repositories {
    mavenCentral()
    maven("https://jitpack.io")
    // OR another notation:
    // maven {
    //     url = uri("https://jitpack.io")
    // }
}
Run Code Online (Sandbox Code Playgroud)

您还可以在较新版本的 Gradle (Gradle 7.4) 中将所有子项目的存储库声明集中在settings.gradle[.kts]文件中:

dependencyResolutionManagement {
    repositories {
        mavenCentral()
        maven("https://jitpack.io")
    }
}
Run Code Online (Sandbox Code Playgroud)

请参阅Gradle 文档网站中的完整指南

  • 我不知道 settings.gradle 位置。感谢那。 (2认同)

Mar*_*zak 7

您必须添加repositories到构建文件。对于Maven存储库,您必须在存储库名称前添加前缀maven{}

repositories {
  maven { url "http://maven.springframework.org/release" }
  maven { url "http://maven.restlet.org" }
  mavenCentral()
}
Run Code Online (Sandbox Code Playgroud)


小智 5

如下所示,将Maven存储库添加到buildscriptbuild.gradle文件的配置块之外:

repositories {
        maven {
            url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases"
        }
    }
Run Code Online (Sandbox Code Playgroud)

确保在以下步骤之后添加它们:

apply plugin: 'com.android.application'
Run Code Online (Sandbox Code Playgroud)