intellij-platform-gradle-plugin
intellij-platform-gradle-plugin copied to clipboard
Support customizing IDEA artifact download
Currently, the gradle-intellij-plugin allows customizing the URL from which the IDEA package is downloaded. However, the plugin makes hardcoded assumptions about the group name, artifact name and packaging (e.g. com/jetbrains/intellij/idea/ideaIC/2016.2.3/ideaIC-2016.2.3.zip). For auditing and performance reasons, our company caches all third party artifacts in our Artifactory repository. Accordingly, we would like to cache IDEA IC for our plugin builds. Given the hardcoded assumptions in the plugin, this is not currently possible. Would it be possible to provide the ability to specify the IDEA dependency coordinates and packaging as well as the download URL?
Given the hardcoded assumptions in the plugin, this is not currently possible.
Why? What's the problem to cache the package in Artifactory with the same group/artifact names?
Would it be possible to provide the ability to specify the IDEA dependency coordinates and packaging as well as the download URL?
I don't want to move from maven-dependency downloading to manual downloading by URL
Our Artifactory is not configured for Maven conventions so we do not look for third party artifacts relative to releases/snapshots. I think we could make this work if you could allow specifying something other than "releases" and "snapshots". We could then specify our top level repo name, and follow your group/artifact name hierarchy down from there.
I see, thanks. Well, I don't mind to make this configurable, but I think it's better if you implemented it by yourself, check whether it works for you before and make a PR with this. Of course I'll be happy to help you with a contribution
With the IntelliJ Platform Gradle Plugin 2.0 release, the repository and dependency management is now changed. Every IntelliJ Platform is treated as an explicit dependency, which is fetched from the repositories you specified in the build configuration — see https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin.html#configuration
That allows you to introduce a custom Ivy repository, like binaryReleases listed below.
https://github.com/JetBrains/intellij-platform-gradle-plugin/blob/cf2554c4e935018ab043b046c909eeb21daff679/src/main/kotlin/org/jetbrains/intellij/platform/gradle/extensions/IntelliJPlatformRepositoriesExtension.kt#L144-L170