当前位置: 首页 > 知识库问答 >
问题:

在我的Gradle Java项目中使用本地jar作为依赖项

曹浩淼
2023-03-14
MyProject
 ->libs/mylib.jar
 ->build.gradle
 ->src/...
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
    > com.my.jar.package
      >ClassFromJar.class

下面是我使用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个答案

万俟高峻
2023-03-14

相似的答案暗示

  1. 本地目录

在模块分级(而不是应用程序分级文件)旁边添加:

repositories {
   flatDir {
       dirs 'libs'
   }
}
dependencies {
    implementation files('libs/mylib.jar')
}
compile fileTree(dir: 'libs', include: 'mylib.jar')
 类似资料:
  • 可以在pom中包含本地文件。xml,或者在本地存储库中安装jar文件,或者提供指向本地jar的链接,并将范围设置为“system”。如果我包括一个胖jar(=包含所有可传递依赖项的jar),会发生什么?Maven是否仍然能够正确地检测依赖冲突,我是否仍然能够排除我的“胖jar依赖”的一些可传递依赖? 问题是,我正在从事一个遗留软件项目,该项目之前没有使用任何构建工具/依赖关系管理工具(因此所有需要

  • 有一些相关的问题,但它们并没有完全回答这个问题: 在构建之前将jar添加到maven本地存储库 maven-assembly-plugin不添加系统作用域的依赖项

  • **新到分级 我有一个需求,需要使用一个现有的spring boot项目(它安装在本地maven存储库中)作为另一个项目(spring boot gradle项目)中的依赖项。 使用mavenLocal我能够成功地运行和构建gradle项目,但是当我试图使用其他项目中存在的任何类时,我就无法导入它。 我如何使用这个分级项目中的maven项目?

  • 我们有一个maven项目,其中我们使用了一些在任何远程存储库中都不存在的工件。它们作为编译的.jar文件包含在我们的项目中的某个目录中,比如/lib。其中一些是“普通”依赖项,我们可以使用范围system+systemPath从/lib中利用这些依赖项,但是有一个工件应该与maven-dependency-plugin unpack目标一起使用。xml的相关部分如下所示 但是,这仍然试图联系到远程

  • 我有一个使用Gradle作为构建工具的项目和第二个使用Maven的POM的子项目。我没有在子项目上更改构建工具的自由。 我想要实现的是将我的项目添加到Maven POM中,作为我的Gradle项目的依赖项。 其中root(当前目录)是我的Gradle项目,并包含,Maven项目位于下,POM文件就在该目录下。 我在我的< code>build.gradle文件中尝试了这些变化: 第一次尝试: 第二

  • 问题内容: 我想使用Leiningen来构建和开发Clojure项目。有没有办法修改project.clj告诉它从本地目录中选择一些jar? 我有一些专有的jar,无法上传到公共存储库。 另外,可以使用leiningen维护clojure项目的“ lib”目录吗?如果我的一堆clojure项目共享相同的jar,我不想为每个jar保留一个单独的副本。 谢谢 问题答案: 你可以将你的私人jar放进去,