java—如何使用下载的二进制文件将ApacheDerby包含为gradle依赖项

o4hqfura  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(371)

我非常了解java,是一个经验丰富的c/python程序员,但在gradle方面我可能有一些基本的误解。
我在终端和vim中发展,这就是我。我在我的系统上安装了apachederby:downloaded,环境变量集,等等。我希望在我用gradle构建的java项目中使用它,但是除了从maven存储库中,我不知道如何将它包含在依赖项中。
如果我这样做了:

testCompile group: 'org.apache.derby', name: 'derby', version: '10.5.3.0'

我的理解是,这是下载它从maven回购再次。我想用我的系统德比,这是不是走错了路,或者有没有办法让grad尔去做呢?如果这个问题充满了误解,我希望能澄清这些误解。
谢谢。

hfwmuf9z

hfwmuf9z1#

+1用于使用vim/终端,这很酷?
gradle是非常灵活的,你要求什么就做什么——尽管有一些最佳实践,见下文。您可以拥有一个包含所有库的libs/文件夹,并将gradle指向该文件夹:

dependencies {
    implementation fileTree('libs') { include '*.jar' }
}

这将把libs/文件夹中的所有jar添加到类路径中。gradle称之为文件依赖。libs文件夹不必在项目目录中,因此可以指向系统范围的libs。
然而。
gradle有一个非常先进的缓存机制,它可以最大限度地减少网络使用,甚至可以平衡本地存储需求。它还将可靠地在项目之间共享下载。你想用这个。
而且,许多javalib都有自己的依赖关系(“可传递的依赖关系”),通常有相当多的依赖关系,从而形成完整的依赖关系树。由于它们的可传递闭包都将在类路径上结束,因此可能会有冲突,gradle将为您解决这些冲突。您将不希望执行手动依赖项解析。
另外,您的项目将更容易为其他人编译,因为gradle将确保依赖项已加载并存在。然而,在运行gradle之前,需要以其他方式安装“systemderby”。
文件依赖性还有许多其他问题,因此我建议您让gradle为您处理这些问题,并使用问题中的语法:

dependencies {
    implementation group: 'org.apache.derby', name: 'derby', version: '10.5.3.0'
}

这里有更多关于所谓“配置”的信息,比如 testCompile 以及 implementation 帮你选对了。
所有这些都将与vim和terminal完美配合。事实上,我经常在intellij开发时从终端给gradle打电话?

相关问题