Merge pull request #175 from JohnHake/IJSDK-591

IJSDK-591: Added module name-based group and artifact ID description
This commit is contained in:
John Hake 2019-06-26 16:53:17 -07:00 committed by GitHub
commit daab898f09
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -27,7 +27,7 @@ More information about [Gradle support](https://www.jetbrains.com/help/idea/grad
To setup dependencies on a module there are two types of information needed:
1. Specify the corresponding repository URL for the artifact.
2. Specify the Maven coordinates for the artifact.
2. Specify the [Maven coordinates](https://maven.apache.org/pom.html#Maven_Coordinates) for the artifact.
### Specify the Repository URL
The URL for the desired artifact needs to be added to a Maven or Gradle script:
@ -35,19 +35,43 @@ The URL for the desired artifact needs to be added to a Maven or Gradle script:
* For EAP candidate snapshots, use `https://www.jetbrains.com/intellij-repository/snapshots`
* For dependencies on individual modules from the IntelliJ Platform, also use `https://jetbrains.bintray.com/intellij-third-party-dependencies`
### Specify the Artifact
Describing a desired IntelliJ Platform module artifact is done with Maven coordinates.
### Specify the Maven Coordinates for the Artifact
Describing a desired IntelliJ Platform module artifact is done with Maven coordinates: _groupId_, _artifactId_, and _version_.
The Maven coordinates are based on the names of modules.
The _groupId_ for a module is the prefix `com.jetbrains.` concatenated with the first two parts of the module name.
For example, the module `intellij.xml` would have the groupId `com.jetbrains.intellij.xml`.
The _artifactId_ is the second.._n_ parts of the module name separated by "-" characters.
For example, the module `intellij.xml` would have the artifactId `xml`.
There are some special cases to artifactId names.
If the second part of the module name is a common group like `platform`, `vcs`, or `cloud`, the second part of the module name is dropped, and the artifactId becomes the third.._n_ parts of the module name, separated by "-" characters.
Portions of the module name expressed in `camelCase` format are divided and used in the artifactId as (all lower case) `camel-case`.
The table below shows some example module names and their corresponding groupId and artifactId.
| **Module Name** | **groupId** | **artifactId** |
|-----------------|-------------|----------------|
|intellij.java.compiler.antTasks | com.jetbrains.intellij.java | java-compiler-ant-tasks |
|intellij.java.debugger | com.jetbrains.intellij.java | java-debugger |
|intellij.platform.util | com.jetbrains.intellij.platform | util |
|intellij.platform.vcs.log | com.jetbrains.intellij.platform | vcs-log |
|intellij.spring | com.jetbrains.intellij.spring | spring |
|intellij.xml.impl | com.jetbrains.intellij.xml | xml-impl |
|-----------------|-------------|----------------|
The artifact _version_ can be specified in one of several ways because each artifact [at the Repository URLs](#specify-the-repository-url) has multiple versions available:
* 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`
* A snapshot of a branch from which the next EAP/release build will be produced is specified as _BRANCH-EAP-SNAPSHOT_. For example `141-EAP-SNAPSHOT`
### Example Artifact Specification
For example, to specify the `jps-model-serialization` module:
* _groupId_ = `com.jetbrains.intellij.platform`
* _artifactId_ = `jps-model-serialization`
* _classifier_ = `""`
* _packaging_ = `jar`
For each artifact [at the Repository URLs](#specify-the-repository-url) there are multiple 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`
* A snapshot of a branch from which the next EAP/release build will be produced is specified as _BRANCH-EAP-SNAPSHOT_. For example `141-EAP-SNAPSHOT`
## Gradle Example for an Individual Module from the IntelliJ Platform
This section presents an example of using a Gradle script to incorporate an IntelliJ Platform module and repository in a `build.gradle` file.
@ -76,3 +100,22 @@ 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.
<!--
Save until after review.
#### Legacy Artifacts
The table below describes the groupId and artifactId for **Legacy** artifacts published at IntelliJ Platform artifacts repositories.
These artifacts will continue to be published using these groupId and artifactId.
The [version](#specifying-version) specification below still apply to these legacy artifacts.
| **groupId** | **artifactId** | **Description** |
|-------------|----------------|-----------------|
|com.jetbrains.intellij.idea | ideaIC | Full zip distribution of IDEA Community |
|com.jetbrains.intellij.idea | ideaIU | Full zip distribution of IDEA Ultimate |
|org.jetbrains.intellij.deps | trove4j | Third-party dependencies of IntelliJ IDEA project |
|org.jetbrains | annotations | Old versions of IDEA annotations |
|com.intellij | javac2 | Old versions of javac2 Ant tasks |
|org.jetbrains.intellij | plugin-repository-rest-client | JetBrains plugin repository client |
|org.jetbrains.kotlin | kotlin-stdlib | Kotlin artifacts |
|org.jetbrains.teamcity | teamcity-rest-client | TeamCity rest client |
-->