如何定义一个只有一个jar文件的简单Gradle项目?

如何定义一个只有一个jar文件的简单Gradle项目?,gradle,build.gradle,android-gradle-plugin,Gradle,Build.gradle,Android Gradle Plugin,我有一个Gradle项目,它依赖于一个外部jar文件。目前,我定义的依赖项如下: dependencies { compile files('/path/to/my/jar/library.jar') } dependencies { compile project(':whatGoesHere?') } 但是,我希望将其作为项目依赖项包含,如下所示: dependencies { compile files('/path/to/my/jar/library.jar') } d

我有一个Gradle项目,它依赖于一个外部jar文件。目前,我定义的依赖项如下:

dependencies {
  compile files('/path/to/my/jar/library.jar')
}
dependencies {
  compile project(':whatGoesHere?')
}
但是,我希望将其作为项目依赖项包含,如下所示:

dependencies {
  compile files('/path/to/my/jar/library.jar')
}
dependencies {
  compile project(':whatGoesHere?')
}
我假设我需要定义一个包含jar文件的新Gradle项目,但我不知道如何做到这一点。我想知道一些事情,比如:

  • 我只需要创建一个新的build.gradle还是有更多的步骤
  • build.gradle文件中会有什么内容
  • 假设新项目只包含jar文件(因为它包含jar文件)。还假设我对Gradle几乎一无所知(因为我不知道!)


    如果有必要,这是一个Android Gradle项目。

    作为我们讨论的总结,我将使用maven本地和maven中央存储库提供“build.Gradle”文件的简单示例:

    apply plugin: 'maven'
    apply plugin: 'java'
    
    repositories {
      mavenLocal()
      mavenCentral()
    }
    
    dependencies {
      compile 'commons-io:commons-io:2.4'
      testCompile 'junit:junit:4.11'
    }
    
    说明:

  • “apply plugin:'maven'”启用依赖项下载所需的maven插件

  • “apply plugin:'java'”为您的项目启用java编译任务

  • “存储库”声明一个或多个存储库(maven或ivy),从中下载工件(jar库)

  • “mavenLocal”是指所谓的本地maven存储库,它位于计算机上的“~/.m2/repository”文件夹中。本地maven存储库有效地缓存外部存储库,但它也允许安装仅本地的工件

  • “mavenCentral”是指maven central

  • “依赖项”列出您的项目依赖项,包括其他项目或工件(JAR)

  • “compile”是一种由“java”和“groovy”插件支持的配置,它告诉gradle:“在编译阶段将这些库添加到应用程序的类路径”

  • “testCompile”是“java”和“groovy”插件支持的另一种配置,它告诉gradle:“在测试阶段将这些库添加到应用程序的类路径”

  • “commons io:commons io:2.4”是maven存储库中工件的“坐标”,格式为group:name:version


  • 您可以在地址搜索著名的java库,然后在“build.gradle”中包含它们的坐标。你不需要下载任何东西——gradle会自动为你下载。

    你基本上不能(也不应该)将jar作为一个项目。gradle中的“项目”是指具有结构(源代码和资源)并且可以(使用这个或那个编译器)编译的东西。从这个意义上说,jar不是一个项目,而是一个依赖关系。您试图实现哪个目标?更具体地说,为什么“编译文件”不适合你,而你在寻找其他东西呢?@akhikhl jar“project”的所有兄弟项目都是Gradle项目,所以我想要一致性和抽象性。项目也可以是依赖项,不是吗?是的,项目可以作为依赖项包含。但并非所有依赖项都是项目。此外,对于现代桌面和web应用程序来说,包含10%的项目依赖项和90%的jar依赖项(或者20/80,但您已经有了一个想法)。“标准”jar依赖项(如ApacheCommons)的最佳位置是所谓的maven central,所以您不必“手动”下载任何jar依赖项—所有这些都是自动完成的。