Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Intellij IDEA 插件开发之自建插件仓库

Intellij IDEA 插件开发之自建插件仓库

作者头像
xiangzhihong
发布于 2018-02-05 07:30:59
发布于 2018-02-05 07:30:59
4.9K00
代码可运行
举报
文章被收录于专栏:向治洪向治洪
运行总次数:0
代码可运行

Intellij IDEA 有一个自己的官方的插件仓库,但是当我们的开发的 Intellij IDEA 的插件不能够对外公开时,我们就需要搭建自己的 Intellij IDEA 的插件仓库。前不久我们也尝试着使用Intellij IDEA自己开发一个插件点击打开链接

搭建 Intellij IDEA 插件仓库

Intellij IDEA 的官方文档里面有提到怎么去新建一个插件仓库,但是,这部分的文档却不在 Intellij IDEA 插件的开发文档里面,而是在插件相关功能的使用文档里面:https://www.jetbrains.com/help/idea/2016.3/adding-plugins-to-enterprise-repositories.html

这里简单对这个文档进行一个说明,如果需要新建一个插件仓库,非常简单,只需要提供一个 URL,当访问这个 URL 的时候,返回如下的一个 XML 即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<plugins>
    <plugin id="com.taobao.middleware.HotCode2Plugin" url="http://localhost/downloads/hotcode2-idea-plugin.jar" version="0.1"/>
    <plugin id="com.alipay.sofa.andromeda" url="http://localhost/idea/download/com.alipay.sofa.andromeda-1.1.34.zip" version="1.1.34"/>
</plugins>

注:

  • id 为插件的 ID,需要跟在插件的 plugin.xml 里面的设定的 ID 一致。
  • url 为插件的 ZIP 包下载的地址。
  • version 是插件的版本号。

使用 gradle 来构建 intellij IDEA插件

添加Intellij Plugin 对 Gradle 的支持其实和 Android 差不多, 需要添加官方的插件支持.

1,在你 Intellij plugin 项目的根目录里执行命令 gradle init来初始化一个 gradle 工程。

2,修改 build.gradle文件,让它能够支持构建 intellij 插件。

3,添加 intellij build plugins 仓库地址:https://plugins.gradle.org/plugin/org.jetbrains.intellij 官方推荐了两种添加方式, 这里我们采用第二种。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plugins {
  id "org.jetbrains.intellij" version "0.1.10"
}

4,使用 intellij idea 的插件(这和Android添加插件是一样的)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'org.jetbrains.intellij'

5,设置运行插件的 intellij 版本以及沙箱地址

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
intellij {
    version = 'IU-163.7342.3' //调试我们插件的版本
    sandboxDirectory = project.rootDir.canonicalPath + "/.sandbox" //插件生成的临时文件的地址
}

完成以上操作, 我们需要用 Idea 来重新以 gradle 的工程来导入我们的项目,这样就可以支持 gradle 啦。

附上build.gradle的完整配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
 * This build file was auto generated by running the Gradle 'init' task
 * by 'darin' at '11/4/16 10:39 AM' with Gradle 2.12
 *
 * 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.12/userguide/tutorial_java_projects.html
 */


plugins {
    id 'org.jetbrains.intellij' version "0.1.10"
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'org.jetbrains.intellij'


// 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()

    maven {
        url "https://raw.github.com/embarkmobile/zxing-android-minimal/mvn-repo/maven-repository/"
    }
}

intellij {
    version = 'IU-163.7342.3'
    plugins = ['JavaScriptLanguage', 'CSS']
    sandboxDirectory = project.rootDir.canonicalPath + "/.sandbox"
}

sourceSets {
    main.java.srcDirs = ['src', 'gen']
    main.resources.srcDir 'resources'

    test.java.srcDir 'test/src'
    test.resources.srcDir 'test/data'
}

// In this section you declare the dependencies for your production and test code
dependencies {
    compile fileTree(dir: 'lib', include: ['*.jar'])
    // The production code uses the SLF4J logging API at compile time
    compile 'org.slf4j:slf4j-api:1.7.18'

    // 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 'com.google.zxing:core:3.2.1'
    compile 'com.google.zxing:javase:2.2'
}

使用 Gradle 来快速发布插件到自建仓库

Jetbrains 官方提供了一个 Gradle Intellij Plugin 来帮助我们构建发布 Intellij IDEA 插件。对于发布 Intellij IDEA 插件的支持,默认行为是发布到 Jetbrains 的官方的仓库上面去的,不过在最新的 SNAPSHOT 版本中,这个插件提供了一个属性 host 可以设置自定义的仓库,我们可以在自己的 build.gradle 文件里面设置这个 host 属性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
publishPlugin.doFirst {
     publishPlugin.host = 'http://ysera.alipay.net:9000/'
 }

设置好了之后,就可以直接使用 gradle publishPlugin 来发布 Intellij IDEA 插件了。不过这里需要注意,我们上传的插件需要包含如下信息:

  • userName:用户名
  • password:密码
  • xmlId:插件的 ID,也就是在 plugin.xml 里面定义的 ID。
  • file:插件的 ZIP 包。

所以到这里,我们自建的插件仓库就可以使用了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-11-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Intellij IDEA 插件开发之自建插件仓库
Intellij IDEA 有一个自己的官方的插件仓库,但是当我们的开发的 Intellij IDEA 的插件不能够对外公开时,我们就需要搭建自己的 Intellij IDEA 的插件仓库。前不久我们也尝试着使用Intellij IDEA自己开发一个插件点击打开链接。
用户8704998
2021/06/07
2.2K0
Idea插件开发
https://www.w3cschool.cn/intellij_idea_doc/
码客说
2024/08/04
2910
Idea插件开发
手把手教你5分钟从零开发一款简易的IDEA插件!项目经验/毕设不愁了!
我这个人没事就喜欢推荐一些好用的 IDEA 插件给大家。这些插件极大程度上提高了我们的生产效率以及编码舒适度。
用户2164320
2020/11/19
2.5K2
Intellij IDEA--Android Studio插件开发
项目需求,需要开发IDE的插件,没开始之前以为会是个很麻烦和困难的事情,开始动手后发现其实步骤也就那么几步。 我平时主要使用的开发IDE就是android studio和pycharm。 本文主要介绍如何开发自己的Android Studio插件。Android Studio本来就是基于IDEA开发的,要开发AS的插件j就是基于IntelliJ IEDA的插件开发。
languageX
2021/01/26
2.7K0
你们要的Intellij IDEA 插件开发秘籍,来了!
王昭霞,软件开发工程师,先后从事脚本工具编写、工具开发、Android基础模块开发等工作。
京东技术
2018/09/28
57K13
你们要的Intellij IDEA 插件开发秘籍,来了!
基于IDEA的自动化代码审计插件开发初探
然后本文主要是给大家介绍一下怎么实现一个IDEA静态代码检测插件,现在都在讲安全左移嘛,我觉得静态代码检测插件就是一个安全左移很好的落地,于是就想着学习一下
tnt阿信
2021/04/26
1.8K0
基于IDEA的自动化代码审计插件开发初探
Kotllin与Maven和Gradle的集成
Intellij IDEA对Kotlin语言提供了完善的支持,我们可以方便的创建项目。但是IDEA项目毕竟只是针对单个IDE的,无法很好的跨环境。Kotlin同时也提供了针对Maven和Gradle的支持。我们可以非常方便的在现有的Java项目中引入Kotlin。
乐百川
2022/05/05
9540
从零开始编写IntelliJ IDEA插件
https://www.cnblogs.com/kancy/p/10654569.html
用户3519280
2023/07/07
7920
从零开始编写IntelliJ IDEA插件
idea插件开发记录
插件开发示例 ---- 功能开发代码示例 java package com.cjl.plugins.code.hints; import com.cjl.plugins.code.code.NavigatorPanel; import com.cjl.plugins.code.http.HttpUtils; import com.cjl.plugins.code.json.Json; import com.intellij.codeInsight.hint.HintManager; import com.
司夜
2023/03/31
7380
idea插件开发记录
1 快速开始 《Kotlin Web 开发实战教程》
Like this website, the plugin allows you to create a Ktor project, but with the additional convenience of being fully integrated in the IDE and automatically setting up the project.
一个会写诗的程序员
2019/03/06
1.7K0
IDEA Web渲染插件开发(一)— 使用JCEF
目前网上已经有了很多关于IDEA(IntelliJ平台)的插件开发教程了,本人觉得简书上这位作者秋水畏寒 的关于插件开发的文章很不错,在我进行插件开发的过程中指导了我很多。但是综合下来看,在IDEA上加载网页的插件的教程还不是特别多,官方文档也不是那么的完整。本系列将会从这个角度出发,探讨如何编写加载Web页面的插件。
w4ngzhen
2023/10/16
2.1K0
IDEA Web渲染插件开发(一)— 使用JCEF
scala + intellij idea 环境搭建及编译、打包
大数据生态圈中风头正旺的Spark项目完全是采用Scala语言开发的,不懂Scala的话,基本上就没法玩下去了。Scala与Java编译后的class均可以运行于JVM之上,就好象.NET中F#与C#的关系。下面进入正题: 1、下载scala sdk http://www.scala-lang.org/download/ 直接到这里下载sdk,目前最新的稳定版为2.11.7,下载后解压就行 (后面在intellij idea中创建.scala后缀源代码时,ide会智能感知并提示你设置scala sdk,按提
菩提树下的杨过
2018/01/18
3.5K0
scala + intellij idea 环境搭建及编译、打包
《IntelliJ IDEA 插件开发》第一节:两种方式创建插件工程
对于码农这一行业的编程学习生涯来说,会遇到很多的不会,不会搭建IDEA工程、不会写老师的案例、不会完成书中的效果、不会做项目的需求、不会实现复杂的逻辑、不会抽象工程的结构等等。但这些不会当中并不是所有的不会,都因为太复杂学不会,而是很大一部分内容因为找不到好的资料、没有清晰的文档、缺少完整的案例,导致不知道所以不会。
小傅哥
2021/10/20
3K0
还没自定义过 Gradle 插件的要学了
Gradle 本质上是高度模块化的构建逻辑,便于重用并与他人分享。例如,我们熟悉的 Android 构建流程就是由 Android Gradle Plugin 引入的构建逻辑。在这篇文章里,我将带你探讨 Gradle 插件的使用方法、开发步骤和技巧总结。
用户9995743
2022/09/26
2K1
还没自定义过 Gradle 插件的要学了
快速构建第一个Flink工程
在安装好Flink以后,只要快速构建Flink工程,并完成相关代码开发,就可以轻松入手Flink。
大数据流动
2019/09/11
1.9K0
快速构建第一个Flink工程
《Kotlin极简教程》第2章 快速开始:HelloWorld
我们在本章将介绍使用Kotlin程序设计语言,分别使用命令行、应用程序、Web RESTFul、Android、Kotlin JavaScript等方式向世界问好:你好,世界。
一个会写诗的程序员
2018/08/17
1.8K0
Gradle 15分钟入门教程
在阅读或实践本文中的实例前,必须首先确保已将Gradle插件安装到Eclipse中。如果没有,可以点击下面的链接查看Gradle安装说明: – http://www.yiibai.com/gradle/how-install-gradle-windows.html
全栈程序员站长
2022/07/21
7750
Gradle 15分钟入门教程
intellij idea创建scala项目并使用log4j
参考Intellj idea中使用Gradle创建Scala项目 下载安装jdk gradle scala. 创建gradle项目. File->New->Project.. 打开窗口,选择grad
平凡的学生族
2020/05/28
1.7K0
Android 开发必备知识:我和 Gradle 有个约会
0、讲个故事 0.1 Ant,我还真以为你是只蚂蚁 真正开始近距离接触编程其实是在2012年,年底的时候带我的大哥说,咱们这个 app 发布的时候手动构建耗时太久,研究一下 ant 脚本吧。 那个时候连 HashMap 都不知道是啥,可想开发经验几乎为零,一个小小的 ant 脚本看得我真是深深地感受到了这个世界充满的恶意。好在后来硬着头皮搞明白了什么 target 之类的鬼东西,不然就没有然后了。 0.2 Maven,你们真的会读这个单词么 Maven /`meivn/ 接触 Maven,完全是因为读陈雄华
腾讯Bugly
2018/03/22
9280
Android 开发必备知识:我和 Gradle 有个约会
浅谈Kotlin(一):简介及Android Studio中配置
浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型、基本语法、代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言:   今日新闻:谷歌宣布,将Kotlin语言作为安卓开发的一级编程语言。       Kotlin由JetBrains公司开发,与Java 100%互通,并具备诸多Java尚不支持的新特性。       谷歌称还将与JetBrains公司合作,为Kotlin设立一个非盈利基金会。 一、简介:      Kotlin 是一个
听着music睡
2018/06/08
1.1K0
相关推荐
Intellij IDEA 插件开发之自建插件仓库
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验