mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-30 18:27:49 +08:00
Incorporated pull request feedback.
This commit is contained in:
parent
c962c727fe
commit
270fa14d58
@ -241,7 +241,7 @@
|
||||
* [Introduction](resources.md)
|
||||
* [IntelliJ Community Edition on GitHub](https://github.com/JetBrains/intellij-community)
|
||||
* [IntelliJ Plugins](https://github.com/JetBrains/intellij-plugins)
|
||||
* [IntelliJ IDEA Artifacts Repository](reference_guide/intellij_artifacts.md)
|
||||
* [IntelliJ Platform Artifacts Repository](reference_guide/intellij_artifacts.md)
|
||||
* [IntelliJ Scala Plugin](https://github.com/JetBrains/intellij-scala)
|
||||
* [Gradle IntelliJ Plugin](https://github.com/JetBrains/gradle-intellij-plugin)
|
||||
* [IntelliJ SDK Documentation](https://github.com/JetBrains/intellij-sdk-docs)
|
||||
|
@ -1,43 +1,35 @@
|
||||
---
|
||||
title: IntelliJ IDEA Community Edition Artifacts Repository
|
||||
title: IntelliJ Platform Artifacts Repository
|
||||
---
|
||||
|
||||
@nik - a few questions in the document. The one systemic improvement I'd like to make is about nomenclature. Why is `artifactId` used
|
||||
in the Artifact Description, but `name` is used as a key in the example Dependency statement? I feel like I need to provide a set
|
||||
of bullet items after each example to translate the terms.
|
||||
JetBrains maintains a public repository that hosts artifacts related to the IntelliJ Platform, such as binaries and source code. This
|
||||
repository makes artifacts more accessible for plugin authors.
|
||||
|
||||
JetBrains maintains a public repository for hosting IntelliJ IDEA Community Edition artifacts such as binaries and source code. This
|
||||
repository makes artifacts more accessible for plugin writers.
|
||||
|
||||
@nik - Does this repository replace a previous system for external plugin developers, or were the artifacts just not available?
|
||||
@nik - Should we state on a public page that there will be additional products in the future - any concern about leading with our chin?
|
||||
|
||||
Multiple types of content are hosted:
|
||||
The IntelliJ Platform Artifacts Repository contains:
|
||||
* [Releases repository](https://www.jetbrains.com/intellij-repository/releases/) for release and EAP versions.
|
||||
* [Snapshots repository](https://www.jetbrains.com/intellij-repository/snapshots/) for nightly successful
|
||||
builds of each branch.
|
||||
* [Dependencies](https://jetbrains.bintray.com/intellij-third-party-dependencies) of individual modules from the IntelliJ IDEA project.
|
||||
|
||||
More artifacts will be hosted in the future.
|
||||
|
||||
### How to Use the Repository
|
||||
There are three steps to use the repository:
|
||||
1. Add the corresponding repository URL to a maven or gradle script.
|
||||
2. Specify the description for the desired artifact.
|
||||
3. Specify the build type and version for the artiface.
|
||||
|
||||
[Dependencies](https://jetbrains.bintray.com/intellij-third-party-dependencies) of individual modules from the IntelliJ
|
||||
Platform are hosted at the bintray repository. These artifacts should not be used directly, but a link to this
|
||||
repository should be added to pom.xml/build.gradle files if individual modules from the IntelliJ Platform Artifacts Repository are used.
|
||||
|
||||
### How to Use the IntelliJ Platform Artifacts Repository
|
||||
There are two steps to using the repository:
|
||||
1. Add the corresponding repository URL to a Maven or Gradle script.
|
||||
2. Specify the Maven coordinates for the artifact.
|
||||
|
||||
#### Add the Repository URL
|
||||
The corresponding URL for the desired artifact needs to be added to a maven or gradle script:
|
||||
The corresponding URL for the desired artifact needs to be added to a Maven or Gradle script:
|
||||
* For release or EAP versions, use https://www.jetbrains.com/intellij-repository/releases
|
||||
* For snapshot or EAP snapshots, use https://www.jetbrains.com/intellij-repository/snapshots
|
||||
* For dependencies of individual modules from the IntelliJ IDEA Community Edition Project, use https://jetbrains.bintray.com/intellij-third-party-dependencies
|
||||
* For dependencies of individual modules from the IntelliJ Platform, use https://jetbrains.bintray.com/intellij-third-party-dependencies
|
||||
|
||||
@nik - the dependencies URL leads
|
||||
to a page with `org/` which leads to `jetbrains/` to `intellij/` to `deps/` which seems like a lot to wade through. Should
|
||||
the URL include these subdirectories?
|
||||
|
||||
#### Specify the Artifact Description
|
||||
Describing the details of a desired artifact is done with parameters to specify the IDs, type, and packaging of the artifacts:
|
||||
* Cross-platform zip distributions of IntelliJ IDEA Community Edition:
|
||||
#### Specify the Artifact
|
||||
Describing the desired artifact is done with Maven coordinates:
|
||||
* Cross-platform zip distributions of IntelliJ Platform artifacts:
|
||||
* groupId = com.jetbrains.intellij.idea
|
||||
* artifactId = ideaIC
|
||||
* classifier = ""
|
||||
@ -47,15 +39,12 @@ Describing the details of a desired artifact is done with parameters to specify
|
||||
* artifactId = ideaIC
|
||||
* classifier = sources
|
||||
* packaging = jar
|
||||
* Some individual modules from IntelliJ IDEA project with their dependencies, for example for module jps-model-serialization:
|
||||
* Individual modules from the IntelliJ Platform with their dependencies. For example, to specify the jps-model-serialization module:
|
||||
* groupId = com.jetbrains.intellij.platform
|
||||
* artifactId = jps-model-serialization
|
||||
* classifier = ""
|
||||
* packaging = jar
|
||||
|
||||
@nik - Do all module specifications use `artifactID` = `jps-model-serialization`? Or is this just an example?
|
||||
|
||||
#### Specify the Artifact Version
|
||||
For each artifact there are several versions available. The version can be specified in one of several ways:
|
||||
* A branch build is specified as _BRANCH.BUILD[.FIX]_. For example, a branch build such as `141.233`, or a branch build with a fix such as `139.555.1`
|
||||
* Release numbers are specified as _MAJOR[.MINOR][.FIX]_. For example `14`, or `14.1`, or `14.1.1`
|
||||
@ -64,48 +53,40 @@ For each artifact there are several versions available. The version can be speci
|
||||
|
||||
|
||||
### Examples
|
||||
This section presents several examples of using a gradle script to incorporate the repository in a build.gradle file. Each example
|
||||
illustrates declaring the artifact URL, Description, and Version for an artifact.
|
||||
This section presents several examples of using a Gradle script to incorporate the repository in a build.gradle file. Each example
|
||||
illustrates declaring the artifact URL, Maven coordinates, and Version for an artifact.
|
||||
There are two parts to each example: the repository and the dependency sections.
|
||||
|
||||
#### Gradle Example for IntelliJ IDEA Community distribution
|
||||
#### Gradle Example for IntelliJ IDEA Community Edition Distribution
|
||||
These snippets illustrate incorporating an IntelliJ snapshot build into a build.gradle file.
|
||||
|
||||
**Repository Section**
|
||||
This snippet selects the snapshot repository for the artifact by virtue of the URL.
|
||||
```
|
||||
```groovy
|
||||
repositories {
|
||||
maven { url "https://www.jetbrains.com/intellij-repository/snapshots" }
|
||||
}
|
||||
```
|
||||
|
||||
**Dependencies Section**
|
||||
Given the repository section has selected a snapshot, the dependencies section specifies the desired build artifact
|
||||
based on the Artifact Description and Artifact Version.
|
||||
```
|
||||
Given the repository section has selected a snapshot, the dependencies section specifies the desired build artifact.
|
||||
```groovy
|
||||
dependencies {
|
||||
idea_dep group: 'com.jetbrains.intellij.idea', name: 'ideaIC', version: '141-SNAPSHOT', ext: 'zip'
|
||||
idea_dep "com.jetbrains.intellij.idea:ideaIC:141-SNAPSHOT@zip"
|
||||
}
|
||||
```
|
||||
Where:
|
||||
* `idea_dep` names this specification as a custom build configuration.
|
||||
* `group` corresponds to the `groupId` for builds in the Artifact Description section.
|
||||
* `name` corresponds to the `artifactId` in the Artifact Description section.
|
||||
* `version` specifies the artifact version - see the Artifact Version section.
|
||||
* `ext` corresponds to the `packaging` in the Artifact Description section.
|
||||
|
||||
@nik - Is `idea_dep` being declared as this particular artifact dependency?
|
||||
Where `idea_dep` names this custom configuration.
|
||||
|
||||
Here is an example of a [build.gradle](https://github.com/shalupov/idea-cloudformation/blob/9007023afa187a1fb8b45c3ca66d5a51f86b795c/build.gradle)
|
||||
that is currently in use.
|
||||
file that is currently in use.
|
||||
|
||||
#### Gradle Example for an Iindividual Module from the IntelliJ IDEA project
|
||||
These snippets illustrate incorporating separate IntelliJ modules into a build.gradle file.
|
||||
#### Gradle Example for an Individual Module from the IntelliJ IDEA Project
|
||||
These snippets illustrate incorporating an IntelliJ module into a build.gradle file. In this case the desired module is `jps-model-serialization`.
|
||||
|
||||
**Repositories Section**
|
||||
This snippet selects the release respository with the first URL, and the repository of IntelliJ IDEA dependencies with the second URL.
|
||||
The second URL is important because this example selects individual modules, not a full build.
|
||||
```
|
||||
This snippet selects the release repository with the first URL, and the repository of IntelliJ IDEA dependencies with the second URL.
|
||||
The second URL is needed because this example selects individual modules, not a full build.
|
||||
```groovy
|
||||
repositories {
|
||||
maven { url "https://www.jetbrains.com/intellij-repository/releases" }
|
||||
maven { url "https://jetbrains.bintray.com/intellij-third-party-dependencies" }
|
||||
@ -113,19 +94,14 @@ repositories {
|
||||
```
|
||||
|
||||
**Dependencies Section**
|
||||
This dependencies section specifies the desired module artifacts based on the Artifact Description and Artifact Version.
|
||||
```
|
||||
This dependencies section specifies the desired module artifacts.
|
||||
```groovy
|
||||
dependencies {
|
||||
compile "com.jetbrains.intellij.platform:jps-model-serialization:182.2949.4"
|
||||
compile "com.jetbrains.intellij.platform:jps-model-impl:182.2949.4"
|
||||
}
|
||||
```
|
||||
Where:
|
||||
* `com.jetbrains.intellij.platform` corresponds to the `groupId` for modules in the Artifact Description section.
|
||||
* `jps-model-serialization` corresponds to the `artifactId` in the Artifact Description section.
|
||||
* `182.2949.4` specifies the artifact version - see the Artifact Version section.
|
||||
* `jps-model-impl` corresponds to the module `artifactId` in the Artifact Description section.
|
||||
* **Note:** the artifact version must match in both statements.
|
||||
|
||||
@nik - Are the statements related in terms of both specifying `jps-model-`? Is there an example where only one module
|
||||
would be specified?
|
||||
Note:
|
||||
* The artifact version (`182.2949.4`) must match in both statements.
|
||||
* In this example `jps-model-serialization` declares the APIs and `jps-model-impl` provides the implementation, so both
|
||||
are required dependencies.
|
||||
|
@ -6,7 +6,7 @@ The following links represent useful resources for working with the _IntelliJ Pl
|
||||
|
||||
* [IntelliJ Community Edition on GitHub](https://github.com/JetBrains/intellij-community)
|
||||
* [IntelliJ Plugins](https://github.com/JetBrains/intellij-plugins)
|
||||
* [IntelliJ IDEA Artifacts Repository](reference_guide/intellij_artifacts.md)
|
||||
* [IntelliJ Platform Artifacts Repository](reference_guide/intellij_artifacts.md)
|
||||
* [IntelliJ Scala Plugin](https://github.com/JetBrains/intellij-scala)
|
||||
* [Gradle Plugin for Grammar-Kit](https://github.com/hurricup/gradle-grammar-kit-plugin)
|
||||
* [Gradle IntelliJ Plugin](https://github.com/JetBrains/gradle-intellij-plugin)
|
||||
|
Loading…
x
Reference in New Issue
Block a user