在我的Gradle Java项目中使用本地jar作为依赖项 [英] Use local jar as a dependency in my Gradle Java project

查看:408
本文介绍了在我的Gradle Java项目中使用本地jar作为依赖项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为mylib.jar的本地jar文件.我想将其用作Gradle Java项目中的依赖项.

I have a local jar file named mylib.jar. I want to used it as a dependency in my Gradle Java project.

这是我尝试过的:

我在项目根目录下创建了一个libs/文件夹.我将jar文件放在libs/文件夹下.

I created a libs/ folder under project root. I put the jar file under libs/ folder.

MyProject
 ->libs/mylib.jar
 ->build.gradle
 ->src/...

在我的build.gradle中:

In my build.gradle:

apply plugin: 'java-library'

group 'com.my.app'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()

    flatDir {
        dirs 'libs'
    }
 }

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    api files('libs/mylib.jar')
}

但是我无法在我的项目代码中访问在mylib.jar中定义的公共类.为什么?

But I can't access the public classes defined in mylib.jar in my project code. Why?

=====更多信息=====

我的罐子里的东西:

mylib.jar
    > com.my.jar.package
      >ClassFromJar.class

这是我使用罐子的方法:

Here is how I use the jar:

// Compilation error: Cannot resolve symobl 'ClassFromJar'
import com.my.jar.package.ClassFromJar;

public class MyEntryPoint {
    // Compilation error: Cannot resolve symbol 'ClassFromJar'
    ClassFromJar instance = new ClassFromJar();
}

推荐答案

  • 本地目录
  • 在模块gradle旁边添加(不是应用gradle文件):

    Add next to your module gradle (Not the app gradle file):

    repositories {
       flatDir {
           dirs 'libs'
       }
    }
    

    1. 相对路径:

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

    1. 使用compile fileTree:

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

    这篇关于在我的Gradle Java项目中使用本地jar作为依赖项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆