Implement NodeJS plugin downloading
This commit is contained in:
committed by
Vyacheslav Gerasimov
parent
48cbcbc496
commit
172a29ba04
@@ -37,6 +37,7 @@ extra["intellijReleaseType"] = "releases" // or "snapshots"
|
|||||||
extra["versions.intellijSdk"] = "172.4343.14"
|
extra["versions.intellijSdk"] = "172.4343.14"
|
||||||
extra["versions.androidBuildTools"] = "r23.0.1"
|
extra["versions.androidBuildTools"] = "r23.0.1"
|
||||||
extra["versions.androidDxSources"] = "5.0.0_r2"
|
extra["versions.androidDxSources"] = "5.0.0_r2"
|
||||||
|
extra["versions.idea.NodeJS"] = "172.3757.32"
|
||||||
|
|
||||||
extra["customDepsRepo"] = "$rootDir/repo"
|
extra["customDepsRepo"] = "$rootDir/repo"
|
||||||
extra["customDepsOrg"] = "kotlin.build.custom.deps"
|
extra["customDepsOrg"] = "kotlin.build.custom.deps"
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ val intellijFlavour = if (intellijUltimateEnabled) "ideaIU" else "ideaIC"
|
|||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { setUrl("$intellijRepo/$intellijReleaseType") }
|
maven { setUrl("$intellijRepo/$intellijReleaseType") }
|
||||||
|
maven { setUrl("https://plugins.jetbrains.com/maven") }
|
||||||
}
|
}
|
||||||
|
|
||||||
val intellij by configurations.creating
|
val intellij by configurations.creating
|
||||||
@@ -22,6 +23,7 @@ val sources by configurations.creating
|
|||||||
val `jps-standalone` by configurations.creating
|
val `jps-standalone` by configurations.creating
|
||||||
val `jps-build-test` by configurations.creating
|
val `jps-build-test` by configurations.creating
|
||||||
val `intellij-core` by configurations.creating
|
val `intellij-core` by configurations.creating
|
||||||
|
val `plugins-NodeJS` by configurations.creating
|
||||||
|
|
||||||
val customDepsRepoDir = File(buildDir, "repo")
|
val customDepsRepoDir = File(buildDir, "repo")
|
||||||
val customDepsOrg: String by rootProject.extra
|
val customDepsOrg: String by rootProject.extra
|
||||||
@@ -35,6 +37,7 @@ dependencies {
|
|||||||
`jps-standalone`("com.jetbrains.intellij.idea:jps-standalone:$intellijVersion")
|
`jps-standalone`("com.jetbrains.intellij.idea:jps-standalone:$intellijVersion")
|
||||||
`jps-build-test`("com.jetbrains.intellij.idea:jps-build-test:$intellijVersion")
|
`jps-build-test`("com.jetbrains.intellij.idea:jps-build-test:$intellijVersion")
|
||||||
`intellij-core`("com.jetbrains.intellij.idea:intellij-core:$intellijVersion")
|
`intellij-core`("com.jetbrains.intellij.idea:intellij-core:$intellijVersion")
|
||||||
|
`plugins-NodeJS`("com.jetbrains.plugins:NodeJS:${rootProject.extra["versions.idea.NodeJS"]}@zip")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Task.configureExtractFromConfigurationTask(sourceConfig: Configuration, extractor: (Configuration) -> Any) {
|
fun Task.configureExtractFromConfigurationTask(sourceConfig: Configuration, extractor: (Configuration) -> Any) {
|
||||||
@@ -60,6 +63,8 @@ val copyIntellijSdkSources by tasks.creating { configureExtractFromConfiguration
|
|||||||
|
|
||||||
val copyJpsBuildTest by tasks.creating { configureExtractFromConfigurationTask(`jps-build-test`) { it.singleFile } }
|
val copyJpsBuildTest by tasks.creating { configureExtractFromConfigurationTask(`jps-build-test`) { it.singleFile } }
|
||||||
|
|
||||||
|
val unzipNodeJSPlugin by tasks.creating { configureExtractFromConfigurationTask(`plugins-NodeJS`) { zipTree(it.singleFile) } }
|
||||||
|
|
||||||
fun writeIvyXml(moduleName: String, fileName: String, jarFiles: FileCollection, baseDir: File, sourcesJar: File) {
|
fun writeIvyXml(moduleName: String, fileName: String, jarFiles: FileCollection, baseDir: File, sourcesJar: File) {
|
||||||
with(IvyDescriptorFileGenerator(DefaultIvyPublicationIdentity(customDepsOrg, moduleName, intellijVersion))) {
|
with(IvyDescriptorFileGenerator(DefaultIvyPublicationIdentity(customDepsOrg, moduleName, intellijVersion))) {
|
||||||
addConfiguration(DefaultIvyConfiguration("default"))
|
addConfiguration(DefaultIvyConfiguration("default"))
|
||||||
@@ -90,6 +95,12 @@ val prepareIvyXml by tasks.creating {
|
|||||||
}
|
}
|
||||||
inputs.dir(File(repoDir, sources.name))
|
inputs.dir(File(repoDir, sources.name))
|
||||||
|
|
||||||
|
if (intellijUltimateEnabled) {
|
||||||
|
dependsOn(unzipNodeJSPlugin)
|
||||||
|
inputs.dir(File(repoDir, `plugins-NodeJS`.name))
|
||||||
|
outputs.file(File(repoDir, "${`plugins-NodeJS`.name}.ivy.xml"))
|
||||||
|
}
|
||||||
|
|
||||||
doFirst {
|
doFirst {
|
||||||
val sourcesFile = File(repoDir, "${sources.name}/${sources.singleFile.name}")
|
val sourcesFile = File(repoDir, "${sources.name}/${sources.singleFile.name}")
|
||||||
writeIvyXml(intellij.name, intellij.name,
|
writeIvyXml(intellij.name, intellij.name,
|
||||||
@@ -103,6 +114,11 @@ val prepareIvyXml by tasks.creating {
|
|||||||
flatDeps.forEach {
|
flatDeps.forEach {
|
||||||
writeIvyXml(it.name, it.name, files("$repoDir/${it.name}"), File(repoDir, it.name), sourcesFile)
|
writeIvyXml(it.name, it.name, files("$repoDir/${it.name}"), File(repoDir, it.name), sourcesFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (intellijUltimateEnabled) {
|
||||||
|
val nodeJsBaseDir = "${`plugins-NodeJS`.name}/NodeJS/lib"
|
||||||
|
writeIvyXml("NodeJS", `plugins-NodeJS`.name, files("$repoDir/$nodeJsBaseDir"), File(repoDir, nodeJsBaseDir), sourcesFile)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ fun RepositoryHandler.intellijSdkRepo(project: Project): IvyArtifactRepository =
|
|||||||
ivyPattern("${baseDir.canonicalPath}/[organisation]/[revision]/intellij.plugin.[module].ivy.xml")
|
ivyPattern("${baseDir.canonicalPath}/[organisation]/[revision]/intellij.plugin.[module].ivy.xml")
|
||||||
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/lib/[artifact](-[classifier]).jar")
|
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/lib/[artifact](-[classifier]).jar")
|
||||||
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/intellij/plugins/[module]/lib/[artifact](-[classifier]).jar")
|
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/intellij/plugins/[module]/lib/[artifact](-[classifier]).jar")
|
||||||
|
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/plugins-[module]/[module]/lib/[artifact](-[classifier]).jar")
|
||||||
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/[artifact].jar")
|
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/[artifact].jar")
|
||||||
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/[artifact](-[revision])(-[classifier]).jar")
|
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/[module]/[artifact](-[revision])(-[classifier]).jar")
|
||||||
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/sources/[artifact]-[revision]-[classifier].[ext]")
|
artifactPattern("${baseDir.canonicalPath}/[organisation]/[revision]/sources/[artifact]-[revision]-[classifier].[ext]")
|
||||||
|
|||||||
Reference in New Issue
Block a user