IntelliJ IDEA: 从命令行安装插件

24

IDEA提供命令行可执行文件来编辑一些设置、安装/卸载插件等,而不需要启动IDE并点击。

例如,可以使用以下命令为Eclipse安装新插件:

eclipse -application org.eclipse.equinox.p2.director -noSplash -repository #{repo} -installIUs #{plugins}

有没有与IntelliJ等效的软件?


1
我从未遇到过这样的事情。你为什么需要这样做呢? - Software Engineer
2
我正在尝试自动化工作站上IDEA的安装(类似于Puppet或Chef脚本)。我想要在配置过程中安装一组预定义的插件。 - vptheron
另一个用例是为Docker镜像自动安装IDEA。 - TmTron
非常希望这可以增强Puppet自动安装的功能。 - l0b0
5个回答

11

以下是我找到的解决方法。明确一点:这并不是我要找的,只是目前为止我找到的最接近的解决方案。

可以从这里的仓库下载IntelliJ IDEA插件:http://plugins.jetbrains.com/?idea_ce 例如,这是Scala插件:http://plugins.jetbrains.com/plugin/1347?pr=idea_ce。每个版本都有一个直接的链接。

下载后,在~/.IdeaIC13/config/plugins中提取zip文件(当然,这取决于平台和您正在运行的IntelliJ版本)。

就这样。通过摇摇欲坠的wgetunzip组合,可以通过命令行安装插件。显然不是一个好的解决方案:对于我的用例(即通过Chef提供工作站),我需要事先知道特定插件的URL,并且需要知道IntelliJ的版本(以识别用户主文件夹中的配置文件夹)。


感谢更新,@vptheron。这肯定会有助于自动化开发环境设置(我的用例是针对Docker)。 - Brett
@Brett 在 Docker 实例中运行 Intellij... 结果怎么样了? - Mike D
1
@MikeD有点慢,我们遇到了1或2个问题。一个普通的Intellij可以正常工作,所以我们最终将本地工作区映射到容器中,并在本地运行IDE,同时在容器内运行工具。 - Brett
链接http://plugins.jetbrains.com/plugin/1347?pr=idea_ce带我到了Scala插件页面,但没有下载任何东西。 - bastian
1
这似乎不再适用于 IntelliJ Idea 2020.3。我将 zip 文件放置在 ~/.cache/JetBrains/IdeaIC2020.3/plugins 文件夹中并解压缩,但似乎无效。 - bastian
对于那些找不到答案中提到的目录的人,我能够在~/Library/Application Support/JetBrains/IdeaICxxxx.x/plugins中找到它。我正在寻找如何在Android Studio中执行此操作,在我的情况下,该目录是~/Library/Application Support/Google/AndroidStudioXXXX/plugins。 - Arpit Ratan

9

如果您的PATH中有jqbsdtarwgetcurl,则以下是用一行代码下载/提取给定插件的最新版本的方法:

wget -qO-  https://plugins.jetbrains.com/files/$(curl https://plugins.jetbrains.com/api/plugins/4415/updates | jq -r '.[0].file') | bsdtar -xvf- -C ~/.PhpStorm2018.3/config/plugins

根据需要替换数字插件ID和输出目录。重新启动IDE将显示已安装下载的插件。


5

2

如果您想为会员同步插件,可以使用必需插件

如果没有插件,将会弹出一个错误提示。


1

我写了一个小的bash来处理它:

pluginsIds=(
7499
20485
)
cd ~/Library/Application\ Support/JetBrains/IntelliJIdea*/plugins || exit

for pluginId in "${pluginsIds[@]}"; do
  id=$(curl -s "https://plugins.jetbrains.com/api/plugins/$pluginId/updates" | jq -r '.[0].id')
  curl -L -o file.zip "https://plugins.jetbrains.com/plugin/download?rel=true&updateId=$id"
  echo "A" | unzip file.zip && rm file.zip
done


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接