ChatGPT解决这个技术问题 Extra ChatGPT

如何在 IDEA 中定义 Gradle 的家?

我正在尝试将 Gradle 项目导入 IntelliJ,当我进入 Gradle Home 文本框时,它不会自动填充,输入 Gradle Home 的路径也不会导致有效位置 - 我有 GRADLE_USER_HOME环境变量设置(我认为是!)正确的路径,我已经能够成功地将同一个项目导入 Eclipse。有什么建议么?

是的,JetBrains 网站上的讨论似乎表明这是符号链接的问题 - 请参阅 Denis.Zhdanov 的回复:blog.jetbrains.com/idea/2013/04/gradle-improvements-at-121
如果选择“Use default gradle wrapper (recommended)”,则不需要设置 Gradle Home。不幸的是,它们并没有将它的输入框变灰——它们只是表明它被鼠标悬停时所拥有的光标类型禁用。

P
Peter

您可以编写一个 simple gradle script 来打印您的 GRADLE_HOME 目录。

task getHomeDir {
    doLast {
        println gradle.gradleHomeDir
    }
}

并将其命名为 build.gradle

然后运行它:

gradle getHomeDir

如果您使用自制软件安装,请使用 brew info gradle 查找基本路径(即 /usr/local/Cellar/gradle/1.10/),然后附加 libexec

如果您使用 build.gradle.kts,Kotlin 中的相同任务:

tasks.register("getHomeDir") {
    println("Gradle home dir: ${gradle.gradleHomeDir}")
}

对于 Linux Mint / Ubuntu 上的用户,/usr/share/gradle 是此 gradle 脚本的输出。
@Steve 乐于助人。今晚我自己就是受益者。 twitter.com/TrentonL/status/729546995686248448
这对我有用,但它太愚蠢了。我使用 Gradle 的 SDK Manager 来安装 Gradle。为什么 IntelliJ 不能使用它?
在 Fedora 25 上也是 /usr/share/gradle。
对于 Arch Linux,它是:/usr/share/java/gradle
T
Trenton

通过 Homebrew 安装在 Mac 上,路径

/usr/local/opt/gradle/libexec

最好是

/usr/local/Cellar/gradle/X.X/libexec

因为前者将在版本升级后继续存在。


Android Studio 也是如此(无论如何,从 AS 1.3 开始)。
不错,我最终使用这个野兽来设置我的 GRADLE_HOME(以防止在使用 brew 升级 gradle 时出现问题)export GRADLE_HOME=`python -c "import os; print(os.path.realpath('$(which gradle)'))" | xargs dirname | xargs dirname | xargs printf "%s/libexec"`如果有人可以简化,那也很方便:)
@mlo55 更容易使用 export GRADLE_HOME=$(realpath $(brew --prefix gradle))/libexec
@mlo55 你为什么在 python 中这样做而不是在 shell 中调用 which gradle
@MikeYoung,当时我没有安装 realpath 。注意:我现在使用 @delitescene 推荐的 export GRADLE_HOME="$(brew --prefix gradle)/libexec/"。如果您使用 brew,则在 osx 上将 ls "$(brew --prefix gradle)/libexec/"ls "$(which gradle)/libexec/" 进行比较。
H
HasanAboShally

如果您使用自制软件安装 gradle,则路径为:

/usr/local/Cellar/gradle/X.X/libexec

其中 XX 是 gradle 的版本(目前是 2.1)


A
Anderson

如果您使用 IntelliJ,只需执行以下操作。

关闭项目(重新)打开项目你会在右下角看到“Import gradle project”消息。点击。选择“使用默认的 gradle 包装器”。不是“使用本地 gradle 分发”

https://i.stack.imgur.com/l68gI.png

就这样。


如果选择“Use default gradle wrapper”,是不是就不用提供 Gradle home 了?
回答:是的。把它归咎于我以前没有注意到的糟糕的用户体验。
"Use gradle 'wrapper' task configuration" 为我工作 - 知道这意味着什么
如果您希望 IDEA 从您的实际构建脚本中为您定义您的 gradle 版本,那么您选择“使用 gradle 'wrapper' 任务配置”
@AndrewGrimm 在我的情况下,这个单选按钮被禁用。所以我不能选择它。有任何想法吗?
C
Cloudish123

这帮助我解决了在导入 Gradle 项目时没有为 IDEA 设置 Gradle home 的问题。

三个选项——(A)默认包装器(B)“gradle 'wrapper' 任务配置”或(C)jetbrains 定义的“本地 gradle 分发”:https://www.jetbrains.com/help/idea/gradle-settings.html

A. 默认包装器(推荐)

如果可以,请选择此推荐选项。如果它是灰色的,请参见选项 C,然后它应该为所有后续项目设置默认值。

B. Gradle 'Wrapper' 任务配置

如果您希望 IDEA 从您的构建脚本中为您定义您的 gradle 版本

如果您将 gradle 构建版本定义为实际 gradle 构建中的任务,请设置此选项。

下面来自 jetbrains 的示例:https://www.jetbrains.com/help/idea/gradle-settings.html

https://i.stack.imgur.com/Yd09d.png

(如果您不想在项目之间共享 gradle 构建,则很有用)

C. 本地 Gradle 分布

1. Run the following command to get gradle location:

   brew info gradle (if gradle was installed with homebrew)


2. You are looking for something like this:

   /usr/local/Cellar/gradle/4.8.1


3. Next, append 'libexec' to the gradle location you just found:

/usr/local/Cellar/gradle/4.8.1/libexec

这是因为“libexec 将被其他程序执行的其他守护进程和系统实用程序使用”(即 IDEA)。请参阅https://unix.stackexchange.com/questions/312146/what-is-the-purpose-of-usr-libexec

4. Finally, put that new path in the Gradle home input box if IDEA prompts you.

https://i.stack.imgur.com/XnExZ.png

IDEA 现在应该允许你点击 OK


对我来说,无论我做什么,我都会得到:原因:无法找到请求目标的有效认证路径
@slashdottir 它可能与您使用的网络有关(如果在工作或大学),或者您可能需要关闭 IDEA,重新启动机器,然后从新项目重建。请参阅 stackoverflow.com/questions/42415666/…,即使它是 Android-studio,它可能仍然有用。让我知道这是否有帮助。
最后只是从命令行切换到构建 gradle - 这样就可以了 - thx
P
Prabs

C:\Users\<_username>\.gradle\wrapper\dists\gradle-<_version>-all\<_number_random_maybe>\gradle-<_version>

\Android studio\gradle 对我不起作用。

从 bitbucket 导入(克隆)项目时未配置“默认 gradle 包装器”

如果它导致问题找出路径,这是我的路径:

C:\Users\prabs\.gradle\wrapper\dists\gradle-5.4.1-all\3221gyojl5jsh0helicew7rwx\gradle-5.4.1


发布仅适用于您的用户名和特定版本号的路径并不是很有帮助。不提出任何解决方案也无济于事。
s
skryvets

这只是 MAC 的说明。我有同样的问题。我通过在 .bash_profile 中配置 $GRADLE_HOME 解决了这个问题。这是你如何做到的:

打开 .bash_profile(通常它位于用户的主目录中)。

添加以下行以更新 $PATH 变量: export GRADLE_HOME=/usr/local/opt/gradle/libexec export PATH=$GRADLE_HOME/bin:$PATH

保存。

通过运行 source .bash_profile 应用您的更改

如果有人遇到同样的问题,我写了 my own article 以防万一。


感谢您的回答。对于 gradle4.7 版本: export GRADLE_HOME=/usr/local/Cellar/gradle/4.7/libexec export PATH=$GRADLE_HOME/bin:$PATH
@PiashSarker,我可以看到 /usr/local/opt/gradle/libexec/usr/local/Cellar/gradle/4.7/libexec 的符号链接。如果 gradle 版本会更新,符号链接也会自动更新。话虽如此,使用 /usr/local/opt/gradle/libexec 仍然更安全。如果我错了,请纠正我。
A
AnupamChugh

在 Mac 上,理想情况下它应该位于:/Applications/Android Studio.app/Contents/gradle/gradle-2.14.1

(将版本字符串替换为最新的)


@RuchirBaronia 仅当您使用 Android Studio 时
这根本不是答案。它应该是“理想的”不是需要回答的。
显然,Gradle 的版本会随着时间的推移而不断提高。试试这个看看你目前有什么:ls -d "/Applications/Android Studio.app/Contents/gradle"/*
j
jtonic

AFAIK 它是 GRADLE_HOME 而不是 GRADLE_USER_HOME(请参阅 gradle 安装 http://www.gradle.org/installation)。

另一方面,我在 Idea 13 Cardea 中使用了 Gradle 支持,我认为 gradle home 不是由 Idea 自动发现的。如果是这样,您可以在 youtrack 中提出问题。

此外,如果您使用 gradle 1.6+,您可以使用 Gradle 支持来设置构建和包装器。我认为idea会自动发现基于包装器的gradle项目。

$ gradle setupBuild --type java-library

$ gradle 包装器

注意:支持的库类型:basic、maven、java

问候


D
Daniel Scott

如果您使用的是 MacPorts,则路径为

/opt/local/share/java/gradle

u
user674669

在选择 gradle 路径之前,我必须设置 Project SDK。一旦设置正确,我必须在“从 Gradle 导入项目”对话框中选择“使用默认 gradle 包装器(推荐)”。

如果我使用 brew 删除 gradle 仍然有效:

$ brew remove gradle

https://i.stack.imgur.com/90PbG.png


S
Seva

这是我的 gradle 之家(Arch Linux):

/usr/share/java/gradle/

B
Burf2000

我遇到了一些奇怪的错误,找不到我的班级,我不得不右键单击我的 src 文件夹(红色)以“将目录设为”-> 源文件夹根目录


M
Martin Pfeffer

单击新建-> 现有源中的项目-> 导入 gradle 项目...

然后 Idea 自动识别了 gradle。


K
Kevin

在删除损坏的 JDK 之前,我无法让它接受我的 Gradle JVM 选择

下面的窗口来自 File -> Other Settings -> Structure For New Projects...

https://i.stack.imgur.com/iJ3EF.png

我在这里有一个红色的 1.8 JDK SDK 条目,一旦我删除了下面的 Gradle JVM 错误就消失了,我可以继续下一步

https://i.stack.imgur.com/dynAX.png


S
SeniorJD

如果您使用的是 Mac,您的 gradle home 很可能应该是 /usr/local/gradle-2.0

优先于 IDEA 搜索 gradle 并设置 gradle home,如上所述。它应该工作