mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 06:39:38 +07:00
OPENIDE #181 Add Lombok plugin as bundled
(cherry picked from commit 5c4f389a3d)
This commit is contained in:
@@ -28,7 +28,7 @@ internal object OpenSourceCommunityInstallersBuildTarget {
|
||||
|
||||
runBlocking(Dispatchers.Default) {
|
||||
val context = createCommunityBuildContext(options)
|
||||
OpenIdePluginBundler.bundleAmplicodePlugin(context)
|
||||
OpenIdePluginBundler.bundlePlugins(context)
|
||||
CompilationTasks.create(context).compileModules(moduleNames = null, includingTestsInModules = listOf("intellij.platform.jps.build.tests"))
|
||||
buildDistributions(context)
|
||||
spanBuilder("build standalone JPS").use {
|
||||
|
||||
@@ -13,5 +13,6 @@
|
||||
<orderEntry type="module" module-name="intellij.platform.buildScripts.downloader" />
|
||||
<orderEntry type="module" module-name="intellij.platform.buildScripts" />
|
||||
<orderEntry type="module" module-name="intellij.platform.util" />
|
||||
<orderEntry type="module" module-name="intellij.platform.ide.util.io" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -14,6 +14,7 @@
|
||||
package ru.openide
|
||||
|
||||
import com.intellij.openapi.util.JDOMUtil
|
||||
import com.intellij.util.Urls
|
||||
import com.intellij.util.io.HttpRequests
|
||||
import org.jdom.Element
|
||||
import org.jetbrains.intellij.build.BuildContext
|
||||
@@ -29,16 +30,40 @@ object OpenIdePluginBundler {
|
||||
private const val PHYSICAL_PLUGINS_DIR = "build/bundled-plugins"
|
||||
private const val AMPLICODE_URL = "https://amplicode.ru"
|
||||
private const val AMPLICODE_MARKETPLACE_URL = "https://amplicode.ru/jetbrains-marketplace"
|
||||
private const val PLUGINS_DOWNLOAD_URL = "https://plugins.openide.ru/pluginManager"
|
||||
|
||||
fun getBundlePluginPaths(context: BuildContext): List<Path> {
|
||||
val communityHomeDir = context.paths.communityHomeDir
|
||||
return listOf(
|
||||
Path.of("${communityHomeDir}/$DOWNLOADABLE_PLUGINS_DIR/amplicode"),
|
||||
Path.of("${communityHomeDir}/$DOWNLOADABLE_PLUGINS_DIR/lombok"),
|
||||
Path.of("${communityHomeDir}/$PHYSICAL_PLUGINS_DIR/ru_pack")
|
||||
)
|
||||
}
|
||||
|
||||
fun bundleAmplicodePlugin(context: BuildContext) {
|
||||
fun bundlePlugins(context: BuildContext) {
|
||||
bundleLombokPluginFromMarketplace(context)
|
||||
bundleAmplicodePlugin(context)
|
||||
}
|
||||
|
||||
private fun bundleLombokPluginFromMarketplace(context: BuildContext) {
|
||||
val parameters = hashMapOf(
|
||||
"id" to "Lombook Plugin",
|
||||
"build" to context.fullBuildNumber
|
||||
)
|
||||
|
||||
val uri = Urls.newFromEncoded(PLUGINS_DOWNLOAD_URL)
|
||||
.addParameters(parameters)
|
||||
.toExternalForm()
|
||||
.let(URI::create)
|
||||
|
||||
val archivePath = BuildDependenciesDownloader.downloadFileToCacheLocation(COMMUNITY_ROOT, uri)
|
||||
val targetDir = context.paths.communityHomeDir.resolve("$DOWNLOADABLE_PLUGINS_DIR/lombok")
|
||||
BuildDependenciesDownloader.extractFile(archivePath, targetDir, COMMUNITY_ROOT, BuildDependenciesExtractOptions.STRIP_ROOT)
|
||||
}
|
||||
|
||||
// TODO: download amplicode from marketplace like lombok plugin
|
||||
private fun bundleAmplicodePlugin(context: BuildContext) {
|
||||
val majorVersion = context.buildNumber.substringBefore('.')
|
||||
val uri = resolveAmplicodeUri(majorVersion)
|
||||
val archivePath = BuildDependenciesDownloader.downloadFileToCacheLocation(COMMUNITY_ROOT, uri)
|
||||
|
||||
Reference in New Issue
Block a user