本文介绍了在我的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();
}

推荐答案

  1. 本地目录
repositories {
   flatDir {
       dirs 'libs'
   }
}
  1. 相对路径:
dependencies {
    implementation files('libs/mylib.jar')
}
  1. 使用compile fileTree:
compile fileTree(dir: 'libs', include: 'mylib.jar')

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

08-04 09:37
查看更多