将 maven 存储库添加到 build.gradle

Posted

技术标签:

【中文标题】将 maven 存储库添加到 build.gradle【英文标题】:Add Maven repository to build.gradle 【发布时间】:2014-01-01 16:06:14 【问题描述】:

我在 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>

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')
    

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

我在 build.gradle 中缺少什么?

【问题讨论】:

【参考方案1】:

之后

apply plugin: 'com.android.application'

你应该添加这个:

  repositories 
        mavenCentral()
        maven 
            url "https://repository-achartengine.forge.cloudbees.com/snapshot/"
        
    

@Benjamin 解释了原因。

如果你有一个带有身份验证的 maven,你可以使用:

repositories 
            mavenCentral()
            maven 
               credentials 
                   username xxx
                   password xxx
               
               url    'http://mymaven/xxxx/repositories/releases/'
            

顺序很重要。

【讨论】:

我们如何在gradle文件中添加cloudbees认证? 如何修改Android Studio,让maven仓库默认添加到build.gradle。我一直忘记这一点,不得不重新发现库不加载的原因。【参考方案2】:

您需要在buildscript 之外定义存储库。 buildscript 配置块仅设置构建脚本的类路径的存储库和依赖项,而不是您的应用程序。

【讨论】:

这对依赖项进行了排序,但 Android Studio 没有重新加载存储库,因此 "import org.achartengine.chart.*;"失败了,你知道如何“刷新”存储库吗? 非常重要。在这个上浪费了 15 分钟 buildscript 内部和外部repositories 是否应该具有相同的远程存储库?【参考方案3】:

Android Studio 用户:

如果您想使用等级,请转到 http://search.maven.org/ 并搜索您的 maven 存储库。然后,单击“最新版本”,在左下方的详细信息页面中,您将看到“Gradle”,然后您可以将该链接复制/粘贴到您应用的 build.gradle 中。

【讨论】:

你让我很开心,非常感谢。另外,为什么这不在ZXing gh 官方页面中?应该不难找到...【参考方案4】:

您必须将repositories 添加到您的构建文件中。对于 maven 存储库,您必须在存储库名称前加上 maven

repositories 
  maven  url "http://maven.springframework.org/release" 
  maven  url "http://maven.restlet.org" 
  mavenCentral()

【讨论】:

【参考方案5】:

在您的主build.gradle 文件的buildscript 配置块之外添加maven 存储库,如下所示:

repositories 
        maven 
            url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases"
        
    

确保在以下内容之后添加它们:

apply plugin: 'com.android.application'

【讨论】:

以上是关于将 maven 存储库添加到 build.gradle的主要内容,如果未能解决你的问题,请参考以下文章

将外部 jar 添加到 Maven 存储库不起作用 [重复]

将项目从 bitbucket 导入到本地 maven 存储库

将jstontools jar添加到Maven存储库

如何使用Maven构建将常规文件夹添加到我的存储库中?

Netbeans 添加新的 Maven 远程存储库

如何使用 Netbeans 嵌入式 Maven 将模块安装到 maven 存储库中?