gpt4 book ai didi

java - 为什么必须声明依赖项的依赖项才能进行构建?

转载 作者:行者123 更新时间:2023-12-03 06:14:51 25 4
gpt4 key购买 nike

我目前正在研究有效地为公司使用Gradle和Artifactory的方法。我能够根据彼此和用于测试的junit构建一些小的测试程序。
我们要实现的目标之一是通过Artifactory在本地服务器上使用第三方库(因此不能使用Maven的镜像)。这就是出现一些问题的地方:如果没有hamcrest,junit将无法运行。因此,我下载了它,但要使构建正常工作,我必须指定该额外的依赖项:

testCompile 'org.hamcrest:hamcrest-core:1.3'



但是,当使用Maven Central时,我不必这样做,而只是在处理我在Artifactory上下载的 Artifactory 时。
显然,必须对具有许多依赖性的库执行此操作会很麻烦。
有人遇到过这个问题吗?有没有一种简单的解决方法,或者我只是错过了什么?

(我写了一个测试:程序1依赖于程序2,而程序2依赖于程序3,然后我构建了程序3并将其发布到Artifactory,然后是程序2最终是程序1。我只需要声明它对程序2的依赖关系就可以进行构建,那样的话没问题)
我希望我足够清楚,在此先感谢!

最佳答案

我很确定您在这里混了些东西。几乎可以肯定,这与Maven Central vs. Artifactory没有关系,只是我们您对program1 / 2/3的小实验表明。

相反,很可能是JUnit引起了困惑。

在没有Hamcrest的情况下,JUnit可以正常运行。仅少数功能需要Hamcrest,例如Assert.assertThat方法。如果使用这些功能,则需要将Hamcrest声明为依赖项。

故事变得更加复杂,因为JUnit曾经包含一个Hamcrest版本,所以当您使用旧版本时,即使不将Hamcrest声明为单独的依赖项,您也可以使用assertThat

关于java - 为什么必须声明依赖项的依赖项才能进行构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31837481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com