Gradle 构建不下载依赖项

     2023-02-26     196

关键词:

【中文标题】Gradle 构建不下载依赖项【英文标题】:Gradle build doesn't download dependencies 【发布时间】:2016-11-23 23:01:25 【问题描述】:

在我的 web 应用的根目录中运行 gradle build 后,build.gradle 中声明的 spring 安全依赖项没有被下载。

这是我的build.gradle

/*
 * This build file was auto generated by running the Gradle 'init' task
 * by 'hombod' at '7/19/16 4:19 PM' with Gradle 2.14.1
 *
 * This generated file contains a commented-out sample Java project to get you started.
 * For more details take a look at the Java Quickstart chapter in the Gradle
 * user guide available at https://docs.gradle.org/2.14.1/userguide/tutorial_java_projects.html
 */


// Apply the java plugin to add support for Java
apply plugin: 'java'

// In this section you declare where to find the dependencies of your project
repositories 
    // Use 'jcenter' for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
    mavenCentral()


// In this section you declare the dependencies for your production and test code
dependencies 
    // The production code uses the SLF4J logging API at compile time
    compile 'org.slf4j:slf4j-api:1.7.21'

    // Declare the dependency for your favourite test framework you want to use in your tests.
    // TestNG is also supported by the Gradle Test task. Just change the
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
    // 'test.useTestNG()' to your build script.
    testCompile 'junit:junit:4.12'
    
    compile 'org.springframework.security:spring-security-web:4.1.1.RELEASE'

相反,我只是收到此消息

:compileJava UP-TO-DAT
:processResources UP-T
:classes UP-TO-DATE
:jar UP-TO-DATE
:assemble UP-TO-DATE
:compileTestJava UP-TO
:processTestResources
:testClasses UP-TO-DAT
:test UP-TO-DATE
:check UP-TO-DATE
:build UP-TO-DATE

这是我在其中运行 gradle init 命令的 spring mvc 网络应用程序

【问题讨论】:

已经下载了。检查相关文件夹。 @SkyWalker 但我在我的网络应用程序中的任何地方都看不到它, @iMassakre 'don't see it' == 无法在您的代码中引用它? @iMassakre 你用什么IDE,如果有的话?你有编译时或运行时错误吗? @yonisha 我正在使用 Eclipse。没有编译或运行时错误。我只是想为我的网络应用下载 Spring Security。 【参考方案1】:

系统会缓存依赖的jar包,这样就不会一次又一次地下载。

如果您的目标只是查看依赖项的下载,那么您可以强制重新下载。

删除本地存储的任何依赖缓存 [1]

$ rm -rf ~/.gradle/caches/

然后重新开始构建

$ gradlew clean build

您也可以使用 [2] 强制更新依赖项

$ gradlew --refresh-dependencies

[1]https://docs.gradle.org/current/userguide/dependency_management.html#sec:dependency_cache [2]https://docs.gradle.org/current/userguide/dependency_management.html#sub:cache_refresh

【讨论】:

【参考方案2】:

对我有帮助的解决方案:

File -> Invalidate Caches/Restart...

【讨论】:

也许值得一提的是,这个答案假设您使用的是 Intellij 或其他缓存依赖项的 IDE。也就是说,这对我有用。【参考方案3】:

我使用的是 IntelliJ 2018.2.3,而 Gradle 没有为我下载依赖项。

我发现我必须取消选中 Gradle 设置中的“离线工作”框才能下载它们。我不确定这个框是如何被选中的,因为我没有选中它(老实说)。

编辑:在 IntelliJ 2021.2.1 离线模式现在可以在 Gradle 工具窗口中切换,如下所示:

【讨论】:

你拯救了我的一天。在我的情况下,检查“切换离线模式”没有触发库下载。取消选中按钮并..从文件>无效缓存中删除缓存文件...解决了问题。【参考方案4】:

如果您的项目在一段时间内成功构建,则可能是当前代理的 gradle 下载问题。 Gradle 有自己的依赖管理系统,类似于 maven。我认为 gradle 发布插件的某些部分以某种方式得到了 maven 的支持(未验证)。无论您不必担心这种深度,gradle 都会处理它。您的问题是设置代理。你只需要在$projectDir/gradle.properties中设置一些变量,例如:

#http proxy setup
systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost

这可以用来在没有代理的情况下下载依赖项。如果你想使用代理,你可以使用下面的代码而不是上面的代码。

systemProp.https.proxyPort=3128
systemProp.http.proxyHost=192.168.16.2
systemProp.https.proxyHost=192.168.16.2
systemProp.http.proxyPort=3128

代理端口和主机可以随意更改。

【讨论】:

【参考方案5】:

在构建较旧的react-native 项目时遇到类似问题。

react-native run-android 命令刚刚打印:

Could not find com.android.tools.build:gradle:2.3.3

在对build.gradle 文件进行大量更改后,发现它没问题,并且 刚刚在Android-Studio中打开了我的react-native项目的android目录,所有的依赖都下载好了。

但为了防止一次又一次地下载文件,使用GradleCopy 使它们可以离线使用,并更改了build.gradle 文件,如下所示:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript 
    ext 
        //kotlin_version = '1.2.40'
        offline = 'D:/android/sdk/extras/m2repository'
    
    repositories 
        try  maven  url uri(offline)   catch (Throwable e) 
        try  maven  url uri('C:/Program Files/Android/Android Studio/gradle/m2repository')   catch (Throwable e) 

        jcenter()
        maven  url 'https://maven.google.com' 
        mavenCentral()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:2.3.3' //was "2.3.3" with "gradle-3.4.1-all.zip" got "3.1.3" with "gradle-4.4-all.zip"
        ////below "kotlin" is required in root "build.gradle" else the "offline" repo will not get searched
        //classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    


allprojects 
    repositories 
        try  maven  url uri(offline)   catch (Throwable e) 

        jcenter()
        mavenLocal()
        maven 
            url 'https://maven.google.com/'
            name 'Google'
        
        mavenCentral()

        maven 
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        
    

(即确实将offline 变量设置为我的m2repository 路径并使用它:maven url uri(offline)

【讨论】:

Gradle离线如何缓存依赖项

】Gradle离线如何缓存依赖项【英文标题】:Gradleofflinehowtocachethedependencies【发布时间】:2016-10-1013:35:43【问题描述】:我在服务器上进行夜间gradle构建,我从git签出存储库并构建它们。但是,有一个代理,gradle无法下载任何存储... 查看详情

Gradle javax.jms 依赖项未下载

】Gradlejavax.jms依赖项未下载【英文标题】:Gradlejavax.jmsdependencynotgettingdownloaded【发布时间】:2015-03-2011:59:58【问题描述】:我正在尝试使用gradle构建基于JMS(activeMq)的应用程序。我需要下载javax.jmsapi依赖项。我将此添加到我的编... 查看详情

当 HEAD 请求失败时,Gradle 无法下载依赖项

】当HEAD请求失败时,Gradle无法下载依赖项【英文标题】:GradlefailingtodownloaddependencywhenHEADrequestfails【发布时间】:2018-06-2312:55:58【问题描述】:我在我的Gradle构建脚本中设置了一个依赖项,该脚本托管在Bitbucket上。Gradle下载失败... 查看详情

Gradle - 获取依赖项的 URL

】Gradle-获取依赖项的URL【英文标题】:Gradle-getURLofdependencyartifact【发布时间】:2016-10-0810:24:40【问题描述】:我想在Gradle获得所有可用的依赖项之后手动下载依赖项,因此我想获取Gradle用于下载这些构件的URL。有没有办法获取Gr... 查看详情

使用 gradle 构建开源依赖项

】使用gradle构建开源依赖项【英文标题】:Buildingopensourcedependenciesusinggradle【发布时间】:2021-12-1022:02:39【问题描述】:我真的没有太多开发经验,更不用说使用构建工具了。我被分配了一项任务来在本地构建依赖项并获取jar文... 查看详情

如何从 Java 代码下载 Gradle 依赖项?

】如何从Java代码下载Gradle依赖项?【英文标题】:HowtodownloadGradledependencyfromjavacode?【发布时间】:2018-06-1916:08:23【问题描述】:我的Java应用程序需要按需将工件从Artifactory复制到AWSS3临时存储桶(应用程序组、名称和版本将在运... 查看详情

Gradle复合构建无法解决传递依赖项[重复]

】Gradle复合构建无法解决传递依赖项[重复]【英文标题】:Gradlecompositebuildcan\'tresolvetransitivedependencies[duplicate]【发布时间】:2021-10-2001:23:37【问题描述】:我有一个依赖库B的项目A,我正在使用gradle复合构建。项目B包含几个常见... 查看详情

gradle 依赖项更新问题后 Cordova Android 构建损坏

】gradle依赖项更新问题后CordovaAndroid构建损坏【英文标题】:CordovaAndroidbuildbrokenaftergradledependenciesupdateissue【发布时间】:2018-11-0905:01:02【问题描述】:JAVA_HOME=C:\\ProgramFiles\\Java\\jdk1.8.0_111目标SDK版本:25gradle依赖项更新后CordovaAndr... 查看详情

使用 maven 的 pom.xml 来构建 gradle 依赖项?

】使用maven的pom.xml来构建gradle依赖项?【英文标题】:usemaven\'spom.xmlforgradlebuilddependencies?【发布时间】:2018-01-0208:51:58【问题描述】:我的问题很简单。我有一个mavenjava项目,我想用gradle构建它。目前我有一个pom.xml文件,我在... 查看详情

如何根据构建变体使用 gradle 不同依赖模块的依赖项进行编译?

】如何根据构建变体使用gradle不同依赖模块的依赖项进行编译?【英文标题】:Howtocompilewithgradledifferentdependencymodule\'sdependenciesbasedonbuildvariants?【发布时间】:2017-09-0910:17:45【问题描述】:我有一个具有模块依赖关系的Android应用... 查看详情

如何发布带有远程依赖项 (gradle) 的 Android 库 (aar)?

】如何发布带有远程依赖项(gradle)的Android库(aar)?【英文标题】:HowdoIshipanAndroidLibrary(aar)withremotedependencies(gradle)?【发布时间】:2014-07-2708:12:03【问题描述】:我正在尝试使用具有远程依赖关系的gradle构建一个aar文件。下面是一... 查看详情

Gradle 构建 Android 项目“无法解决所有依赖项”错误

】Gradle构建Android项目“无法解决所有依赖项”错误【英文标题】:GradleBuildAndroidProject"Couldnotresolvealldependencies"error【发布时间】:2013-08-0510:12:19【问题描述】:我正在尝试使用Gradle构建我的第一个项目,我认为我的gradle... 查看详情

gradle依赖项配置(代码片段)

...积累和分享本文:https://www.jianshu.com/p/49fc95d8c937前言Gradle依赖配置查询配置行为implementation将依赖项添加到编译类路径,并将依赖项打包到构建输出注意:Model使用时,不会泄露给其它模块引用api将依赖项添加到编... 查看详情

intellij 构建包含 gradle 依赖项的 jar 工件

】intellij构建包含gradle依赖项的jar工件【英文标题】:intellijbuildjarartifactcontaininggradledependencies【发布时间】:2015-08-2718:03:09【问题描述】:我基本上想做一些简单的事情——或者至少我认为它应该很简单。我的目标是创建一个Int... 查看详情

Gradle:使用 Spring Boot 依赖项构建“fat jar”

】Gradle:使用SpringBoot依赖项构建“fatjar”【英文标题】:Gradle:Build\'fatjar\'withSpringBootDependencies【发布时间】:2016-02-0806:58:52【问题描述】:我正在使用Gradle构建一个非常简单的SpringBoot应用程序(99%静态内容)并将其打包到一个... 查看详情

Gradle buildscript 依赖项

】Gradlebuildscript依赖项【英文标题】:Gradlebuildscriptdependencies【发布时间】:2012-12-0502:46:54【问题描述】:在gradle构建的buildscript部分或构建的根级别声明存储库有什么区别。buildscriptrepositoriesmavenCentral();对repositoriesmavenCentral();【... 查看详情

在 Intellij 中无法识别 Gradle 依赖项

】在Intellij中无法识别Gradle依赖项【英文标题】:GradleDependenciesnotrecognizedinIntellij【发布时间】:2016-09-2523:38:36【问题描述】:我正在开发一个使用Gradle作为依赖管理系统或其他东西的SpringBoot应用程序。在向构建脚本添加几个依... 查看详情

如何在gradle构建文件中将哪个依赖项和依赖项版本打包到war文件中?(代码片段)

我想打印所有依赖groupId,artifactId和将在多个模块gradle项目中打包到war包中的版本。我能做什么?答案您可以在定义dependenciestask的项目上运行war。在链接文档页面中有许多其他方法可用于调查Gradle项目的依赖关系。 查看详情