This project requires JVM version of at least 1.7
This plugin allows you to build plugins for IntelliJ platform using specific IntelliJ SDK and bundled plugins.
The plugin adds extra IntelliJ-specific dependencies, patches processResources tasks to fill some tags
(name, version) in plugin.xml with appropriate values, patches compile tasks to instrument code with
nullability assertions and forms classes made with IntelliJ GUI Designer and provides some build steps which might be
helpful while developing plugins for IntelliJ platform.
buildscript {
repositories {
maven { url 'http://dl.bintray.com/jetbrains/intellij-plugin-service' }
}
}
plugins {
id "org.jetbrains.intellij" version "0.1.10"
}buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
maven {
url 'http://dl.bintray.com/jetbrains/intellij-plugin-service'
}
}
dependencies {
classpath "gradle.plugin.org.jetbrains:gradle-intellij-plugin:0.1.10"
}
}
apply plugin: 'org.jetbrains.intellij'buildscript {
repositories {
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
maven {
url 'http://dl.bintray.com/jetbrains/intellij-plugin-service'
}
}
dependencies {
classpath "org.jetbrains.intellij.plugins:gradle-intellij-plugin:0.2.0-SNAPSHOT"
}
}
apply plugin: 'org.jetbrains.intellij'Plugin introduces following tasks
prepareSandboxcreates proper structure of plugin and fills sandbox directory with itbuildPluginassembles plugin and prepares zip archive for deploymentrunIdeaexecutes IntelliJ IDEA instance with the plugin you are developing installed inpublishPluginuploads plugin distribution archive to http://plugins.jetbrains.com
Plugin provides following options to configure target IntelliJ SDK and build archive
intellij.versiondefines the version of IDEA distribution that should be used as a dependency. The option accepts build numbers, version numbers and two meta valuesLATEST-EAP-SNAPSHOT,LATEST-TRUNK-SNAPSHOT.
Value may have `IC-` or `IU-` prefix in order to define IDEA distribution type.
**Default value**: `LATEST-EAP-SNAPSHOT`
-
intellij.typedefines the type of IDEA distribution:ICfor community version andIUfor ultimate.
Default value:IC -
intellij.pluginsdefines the list of bundled IDEA plugins and plugins from idea repository that should be used as dependencies in formatorg.plugin.id:version. E.g.plugins = ['org.intellij.plugins.markdown:8.5.0.20160208']. If version is not set then bundled plugin will be used.
Default value:<empty> -
intellij.pluginNameis used for naming target zip-archive and defines the name of plugin artifact. of bundled IDEA plugins that should be used as dependencies.
Default value:$project.name -
intellij.sandboxDirectorydefines path of sandbox directory that is used for running IDEA with developing plugin.
Default value:$project.buildDir/idea-sandbox -
intellij.instrumentCodedefines whether plugin should instrument java classes with nullability assertions. Also it might be required for compiling forms created by IntelliJ GUI designer.
Default value:true -
intellij.updateSinceUntilBuilddefines whether plugin should patchplugin.xmlwith since and until build values, if true thenIntelliJIDEABuildNumberwill be used as asincevalue andIntelliJIDEABranch.9999will be used as an until value.
Default value:true -
intellij.sameSinceUntilBuilddefines whether plugin should patchplugin.xmlwith "open" until build. if true then the sameIntelliJIDEABuildNumberwill be used as asincevalue and as an until value, which is useful for building plugins against EAP IDEA builds.
Default value:false -
intellij.downloadSourcesdefines whether plugin should download IntelliJ sources while initializing Gradle build. Since sources are no needed while testing on CI, you can set it tofalsefor particular environment.
Default value:true -
intellij.systemPropertiesdefines the map of system properties which will be passed to IDEA instance on executingrunIdeatask and tests.
Also you can useintellij.systemProperty(name, value)method in order to set single system property.
Default value:[] -
intellij.alternativeIdePath– absolute path to the locally installed JetBrains IDE. It makes sense to use this property if you want to test your plugin in WebStorm or any other non-IDEA JetBrains IDE. Empty value means that the IDE that was used for compiling will be used for running/debugging as well.
Default value:<empty>
intellij.publish.usernameyour login at JetBrains plugin repository.intellij.publish.passwordyour password at JetBrains plugin repository.intellij.publish.channeldefines channel to upload, you may use any string here, empty string means default channel.
Available in SNAPSHOT only
intellij.publish.channelsdefines several channels to upload, you may use any string here,defaultstring means default channel.
Default value:<empty>
plugins {
id "org.jetbrains.intellij" version "0.1.10"
}
intellij {
version 'IC-2016.1'
plugins = ['coverage', 'org.intellij.plugins.markdown:8.5.0.20160208']
pluginName 'MyPlugin'
publish {
username 'zolotov'
password 'password'
channel 'nightly'
}
}As examples of using this plugin you can check out following projects:
- Go plugin and its TeamCity build configuration
- Erlang plugin and its TeamCity build configuration
- Rust plugin and its TeamCity build configuration
- AWS CloudFormation plugin and its TeamCity build configuration
- Bash plugin and its TeamCity build configuration
- Perl5 plugin and its Travis configuration file
- Android Drawable Importer plugin
- Android Material Design Icon Generator plugin
- EmberJS plugin
- GCloud plugin
- HCL plugin
- Robot plugin
- TOML plugin
- SQLDelight Android Studio Plugin
- https://github.com/breandan/idear
- https://github.com/pedrovgs/AndroidWiFiADB
- https://github.com/SonarSource/sonar-intellij
- IdeaVim plugin and its TeamCity build configuration
- Adb Idea is configured to build and run against stable, beta or preview (canary) releases of Android Studio
- Gerrit uses Travis CI inclusive automated publishing of releases to GitHub and JetBrains plugin repository (triggered by version tag creation)
- .ignore
- Minecraft Development and its TeamCity build configuration
Copyright 2016 org.jetbrains.intellij.plugins
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.