如何将本地.jar文件依赖项添加到build.gradle文件?

 rz白雪 发布于 2023-02-09 02:30

所以我试图将我的本地.jar文件依赖项添加到我的build.gradle文件中:

apply plugin: 'java'

sourceSets {
    main {
        java {
            srcDir 'src/model'
        }
    }
}

dependencies {
    runtime files('libs/mnist-tools.jar', 'libs/gson-2.2.4.jar')
    runtime fileTree(dir: 'libs', include: '*.jar')
} 

你可以看到我在这里将.jar文件添加到referencedLibraries文件夹中:https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1/referencedLibraries

但问题是当我运行命令时:在命令行上运行gradle我得到以下错误:

error: package com.google.gson does not exist
import com.google.gson.Gson;

这是我的整个回购:https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1

12 个回答
  • 如果你真的需要从本地目录中获取.jar,

    在模块gradle旁边添加(不是app gradle文件):

    repositories {
       flatDir {
           dirs 'libs'
       }
    }
    
    
    dependencies {
       implementation name: 'gson-2.2.4'
    }
    

    但是,作为实际maven存储库中的标准.jar,为什么不尝试这个呢?

    repositories {
       mavenCentral()
    }
    dependencies {
       implementation 'com.google.code.gson:gson:2.2.4'
    }
    

    2023-02-09 02:32 回答
  • 您也可以执行此操作,其中包括本地存储库中的所有JAR.这样您就不必每次都指定它.

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
    }
    

    2023-02-09 02:37 回答
  • 根据文档,使用本地jar依赖项的相对路径,如下所示:

    dependencies {
        implementation files('libs/something_local.jar')
    }
    

    2023-02-09 02:40 回答
  • 以下适用于我:

    compile fileTree(dir: 'libs', include: '*.jar')
    

    请参阅Gradle文档.

    2023-02-09 02:42 回答
  • 您可以尝试重用Gradle的本地Maven存储库:

    将jar安装到本地Maven存储库中:

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

    检查您是否已将jar安装到~/.m2/本地Maven存储库中

    在您的build.gradle文件中启用本地Maven存储库:

    repositories {
      mavenCentral()  
      mavenLocal()  
    }
    
    dependencies {  
      implementation ("com.company:utility:0.0.1")  
    }
    

    现在,您应该在项目中启用jar进行编译

    2023-02-09 02:43 回答
  • 一个简单的方法是

    compile fileTree(include: ['*.jar'], dir: 'libs')
    

    它将编译App中libs目录中的所有.jar文件.

    2023-02-09 02:51 回答
  • 接受的答案是好的,但是,在我的多项目Gradle构建中我需要各种库配置来使用相同的第三方Java库.

    将' $ rootProject.projectDir ' 添加到' allprojects '闭包中的' dir '路径元素中意味着每个子项目引用相同的' libs '目录,而不是该子项目的本地版本:

    //gradle.build snippet
    allprojects {
        ...
    
        repositories {
            //All sub-projects will now refer to the same 'libs' directory
            flatDir {
                dirs "$rootProject.projectDir/libs"
            }
            mavenCentral()
        }
    
        ...
    }
    

    编辑Quizzie:将"$ {rootProject.projectDir}"更改为"$ rootProject.projectDir"(适用于最新的Gradle版本).

    2023-02-09 02:55 回答
  • 针对使用Kotlin DSL的用户的解决方案

    到目前为止添加的解决方案对于OP来说非常有用,但是必须先翻译它们,才能与Kotlin DSL一起使用。这是如何使用Kotlin DSL将本地.JAR添加到构建中的示例:

    dependencies {
        compile(files("/path/to/file.jar"))
        testCompile(files("/path/to/file.jar"))
        testCompile("junit", "junit", "4.12")
    }
    

    请记住,如果您使用的是Windows,则必须转义反斜杠:

    ...
    compile(files("C:\\path\\to\\file.jar"))
    ...
    

    还要记住,引号必须是双引号,而不是单引号。

    2023-02-09 03:00 回答
  • 我无法在/sf/ask/17360801/上获得上述建议.这虽然对我有用.对于secondstring-20030401.jar存储在libs/项目根目录中的文件:

    repositories {
        mavenCentral()
        // Not everything is available in a Maven/Gradle repository.  Use a local 'libs/' directory for these.
        flatDir {
           dirs 'libs'
       }
    }
    
    ...
    
    compile name: 'secondstring-20030401'
    

    2023-02-09 03:00 回答
  • 该问题已经得到了详细的答复.我还想添加一些对我来说非常令人惊讶的东西:

    "gradle dependencies"任务不会列出任何文件依赖项.即使你可能这么认为,因为它们已经在"依赖"块中被指定了.

    所以不要依赖于它的输出来检查引用的本地lib文件是否正常工作.

    2023-02-09 03:03 回答
  • 对我有用的解决方案是在build.gradle文件中使用fileTree.保留需要在libs文件夹中添加为依赖项的.jar.在build.gradle中的dependdenices块中给出以下代码:

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
    }
    

    2023-02-09 03:07 回答
  • 最好的方法是在build.gradle文件中添加它并点击同步选项

    dependency{
        compile files('path.jar')
    }
    

    2023-02-09 03:14 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有