2 * Copyright 2000-2016 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 import org.jetbrains.intellij.build.*
19 import org.jetbrains.intellij.build.impl.BuildTasksImpl
20 import org.jetbrains.jps.util.JpsPathUtil
22 import static org.jetbrains.jps.idea.IdeaProjectLoader.guessHome
24 includeTargets << new File("${guessHome(this)}/build/scripts/utils.gant")
27 * @deprecated use 'update-from-sources' from dist.gant instead
29 target('default': "Developers update") {
30 //when IDEA CE is updated from IDEA UE sources project should be loaded from IDEA UE directory
31 String projectHome = isDefined("devIdeaHome") ? devIdeaHome : home
32 def options = new BuildOptions()
33 options.useCompiledClassesFromProjectOutput = true
34 def context = BuildContext.createContext(ant, projectBuilder, project, global, home, projectHome, new IdeaCommunityProperties(home),
35 ProprietaryBuildTools.DUMMY, options)
36 context.paths.distAll = deploy
40 boolean setPluginAndIDEVersionInPluginXml() {
41 return !isDefined("productProperties") || productProperties.setPluginAndIDEVersionInPluginXml
44 List<String> getExcludedPlugins() {
49 * @deprecated this method isn't called anymore, it's temporary left for compatibility only; modify {@link org.jetbrains.intellij.build.IdeaCommunityProperties} instead
51 def layoutFull(BuildContext context) {
52 binding.setVariable("productProperties", context.productProperties)
53 String home = context.paths.communityHome
54 String targetDirectory = context.paths.distAll
55 File patchedApplicationInfo = ((BuildTasksImpl)BuildTasks.create(context)).patchApplicationInfo()
56 projectBuilder.stage("layout to $targetDirectory")
58 List<String> jpsCommonModules = ["jps-model-impl", "jps-model-serialization"]
59 List<String> openapiModules = [platformApiModules,
70 "remote-servers-java-api",
74 List<String> implementationModules = [platformImplementationModules,
78 "duplicates-analysis",
80 "external-system-impl",
86 "java-structure-view",
90 "remote-servers-java-impl",
92 "structuralsearch-java",
98 implementationModules.removeAll(jpsCommonModules) //todo[nik] remove jps modules from platformImplementationModules instead and update layouts of minor IDEs accordingly
100 ant.patternset(id: "resources.included") {
101 include(name: "**/*.properties")
102 include(name: "fileTemplates/**/*")
103 include(name: "inspectionDescriptions/**/*")
104 include(name: "intentionDescriptions/**/*")
105 include(name: "tips/**/*")
108 ant.patternset(id: "resources.excluded") {
109 exclude(name: "**/*.properties")
110 exclude(name: "fileTemplates/**/*")
111 exclude(name: "fileTemplates")
112 exclude(name: "inspectionDescriptions/**/*")
113 exclude(name: "inspectionDescriptions")
114 exclude(name: "intentionDescriptions/**/*")
115 exclude(name: "intentionDescriptions")
116 exclude(name: "tips/**/*")
117 exclude(name: "tips")
120 def info = layout(targetDirectory) {
123 fileset(dir: "${home}/lib/rt", includesfile: "${home}/lib/rt/required_for_dist.txt")
124 jar("jps-plugin-system.jar") {
125 module("jps-plugin-system")
130 fileset(dir: "$home/lib/libpty") {
131 exclude(name: "readme.txt")
141 openapiModules.each { module it}
144 jar("annotations.jar") {
145 module("annotations-common")
146 module("annotations")
148 jar("jdkAnnotations.jar") {
149 fileset(dir: "${home}/java/jdkAnnotations")
152 jar("extensions.jar") { module("extensions")}
154 jar("external-system-rt.jar") { module("external-system-rt")}
156 jar([name: "idea.jar", duplicate: "preserve"]) {
157 implementationModules.each { module it}
160 jar("bootstrap.jar") { module("bootstrap") }
162 jar("jps-launcher.jar") { module("jps-launcher") }
164 jar("resources.jar") {
165 module("colorSchemes")
167 module("platform-resources")
169 def appInfoModule = context.productProperties.applicationInfoModule
170 if ("community-resources" == appInfoModule) {
171 module("community-resources") {
172 if (patchedApplicationInfo != null) {
173 exclude(name: "idea/$patchedApplicationInfo.name")
177 module("community-resources")
178 module(appInfoModule) {
179 if (patchedApplicationInfo != null) {
180 exclude(name: "idea/$patchedApplicationInfo.name")
184 if (patchedApplicationInfo != null) {
186 fileset(file: patchedApplicationInfo.path)
191 jar("idea_rt.jar") { module("java-runtime")}
193 jar("forms_rt.jar") {
195 module("forms-compiler")
198 jar("resources_en.jar") {
199 module("resources-en")
200 module("platform-resources-en")
203 jar("icons.jar") { module("icons") }
204 jar("boot.jar") { module("boot") }
208 module("forms-compiler")
210 module("instrumentation-util")
211 module("instrumentation-util-8")
212 module("javac-ref-scanner-8")
215 jar("jps-model.jar") {
216 jpsCommonModules.each { module it }
218 jar("jps-builders.jar") {
219 module("jps-builders")
222 fileset(dir: "$home/jps/lib") {
223 include(name: "optimizedFileManager.jar")
226 fileset(dir: "$home/lib", includesfile: "${home}/lib/required_for_dist.txt")
228 fileset(dir: "$home/build/kotlinc/lib") {
229 include(name: "kotlin-runtime.jar")
230 include(name: "kotlin-reflect.jar")
233 fileset(dir: "$home/xml/relaxng/lib", includes: "*.jar")
236 fileset(dir: "$home/lib/ant") {
237 exclude(name: "**/src/**")
243 jar("annotations-java8.jar") {
244 module("annotations-common")
245 module("annotations-java8")
249 layoutCommunityPlugins(home, context)
255 noResources("javaFX")
256 noResources("javaFX-CE")
258 resources(["javaFX", "javaFX-CE"])
259 jar("javaFX-jps-plugin.jar") {
260 module("javaFX-jps-plugin")
262 jar("common-javaFX-plugin.jar") {
263 module("common-javaFX-plugin")
265 fileset(dir: "${home}/plugins/javaFX/lib", includes: "SceneBuilderKit-8.1.1.jar");
273 jar("IntelliLang.jar") {
274 module("IntelliLang")
275 module("IntelliLang-java")
276 module("IntelliLang-xml")
278 jar("intellilang-jps-plugin.jar") {
279 module("intellilang-jps-plugin")
286 reorder(home, targetDirectory)
291 * @deprecated this method isn't used in new build scripts (it's still used in CLion and AppCode build scripts which aren't rewritten yet and
292 * in third-party products); specify non-trivial layout of plugins in {@link org.jetbrains.intellij.build.CommunityRepositoryModules} instead
294 public def layoutCommunityPlugins(String home, BuildContext buildContext = null) {
295 if (!isDefined("pluginFilter") || pluginFilter.contains("android")) {
296 if (buildContext == null) {
297 projectBuilder.error("Cannot build Android plugin: buildContext isn't defined")
299 def androidModule = buildContext.findModule("android")
300 def sdklibModule = buildContext.findModule("sdklib")
301 if (androidModule == null) projectBuilder.error("Cannot build Android plugin: 'android' module isn't included into the project")
302 if (sdklibModule == null) projectBuilder.error("Cannot build Android plugin: 'sdklib' module isn't included into the project")
304 def androidHome = JpsPathUtil.urlToPath(androidModule.contentRootsList.urls.first())
305 def androidToolsBaseHome = JpsPathUtil.urlToFile(sdklibModule.contentRootsList.urls.first()).parentFile.canonicalPath
306 [androidHome, androidToolsBaseHome].each {
307 if (!new File(it).exists()) projectBuilder.error("Cannot build Android plugin: $it doesn't exist")
309 layoutAndroid(androidHome, androidToolsBaseHome)
313 def simplePlugins = ["copyright", "java-i18n", "hg4idea", "github"] //, "tasks-time-tracking"]
319 layoutPlugin("ant", "ant", "antIntegration") {
320 jar("ant-jps-plugin.jar") {
321 module("ant-jps-plugin")
324 layoutPlugin("uiDesigner", "ui-designer", "uiDesigner") {
326 jar("ui-designer-jps-plugin.jar") {
327 module("ui-designer-jps-plugin")
332 pluginDir("properties") {
334 jar("properties.jar") {
335 module("properties-psi-api")
336 module("properties-psi-impl")
342 layoutPlugin("maven") {
343 jar("maven-jps-plugin.jar") {
344 module("maven-jps-plugin")
346 jar("aether-dependency-resolver.jar") {
347 module("aether-dependency-resolver")
349 jar("maven-server-api.jar") {
350 module("maven-server-api")
352 jar("maven2-server-impl.jar") {
353 module("maven2-server-impl")
355 jar("maven3-server-common.jar") {
356 module("maven3-server-common")
358 jar("maven30-server-impl.jar") {
359 module("maven30-server-impl")
361 jar("maven3-server-impl.jar") {
362 module("maven3-server-impl")
365 jar("artifact-resolver-m2.jar") {
366 module("maven-artifact-resolver-m2")
367 module("maven-artifact-resolver-common")
370 jar("artifact-resolver-m3.jar") {
371 module("maven-artifact-resolver-m3")
372 module("maven-artifact-resolver-common")
375 jar("artifact-resolver-m31.jar") {
376 module("maven-artifact-resolver-m31")
377 module("maven-artifact-resolver-common")
380 dir("maven3-server-lib") {
381 fileset(dir: "$home/plugins/maven/maven3-server-common/lib") {include(name: "*.jar")}
384 fileset(dir: "$home/plugins/maven/maven3-server-impl/lib/maven3")
387 dir("maven2-server-lib") {
388 fileset(dir: "$home/lib/") { include(name: "jaxb*.jar")}
389 fileset(dir: "$home/plugins/maven/maven2-server-impl/lib") {include(name: "*.jar")}
392 fileset(dir: "$home/plugins/maven/maven2-server-impl/lib/maven2")
395 fileset(dir: "$home/plugins/maven/lib")
396 fileset(dir: "$home/plugins/maven/maven-server-api/lib")
399 layoutPlugin("gradle") {
400 jar("gradle-jps-plugin.jar") {
401 module("gradle-jps-plugin")
404 jar("gradle-tooling-extension-api.jar") {
405 module("gradle-tooling-extension-api")
408 jar("gradle-tooling-extension-impl.jar") {
409 module("gradle-tooling-extension-impl")
411 fileset(dir: "$home/plugins/gradle/lib") { include(name: "*.jar") }
413 fileset(dir: "$home/lib/") {
414 include(name: "kryo-*.jar")
415 include(name: "reflectasm-*.jar")
416 include(name: "objenesis-*.jar")
417 include(name: "minlog-*.jar")
421 layoutPlugin("git4idea") {
422 jar("git4idea-rt.jar") {
423 module("git4idea-rt")
425 jar("remote-servers-git.jar") {
426 moduleOptional("remote-servers-git")
427 moduleOptional("remote-servers-git-java")
429 fileset(dir: "$home/plugins/git4idea/lib") {
430 include(name: "trilead-ssh2.jar")
432 fileset(dir: "$home/plugins/git4idea/lib/ini4j") {
433 include(name: "ini4j*.jar")
434 exclude(name: "ini4j*sources.jar")
438 layoutPlugin("svn4idea") {
439 fileset(dir: "$home/plugins/svn4idea/lib") {
440 exclude(name: "svnkitsrc.zip")
441 exclude(name: "sqljetsrc.zip")
442 exclude(name: "svnkit-javahl16.zip")
443 exclude(name: "trileadsrc.zip")
447 layoutPlugin("junit", "junit", "idea-junit") {
448 jar("junit-rt.jar") {
451 jar("junit5-rt.jar") {
454 fileset(dir: "$home/plugins/junit5_rt/lib") {
455 include(name: "*.jar")
459 pluginDir("ByteCodeViewer") {
461 jar("byteCodeViewer.jar") {
462 noResources("ByteCodeViewer")
467 pluginDir("cvsIntegration") {
469 jar("cvs_util.jar") {noResources("cvs-core")}
470 jar("cvsIntegration.jar") {noResources("cvs-plugin")}
471 jar("javacvs-src.jar") {noResources("javacvs-src")}
472 jar("smartcvs-src.jar") {noResources("smartcvs-src")}
474 resources(["cvs-core", "cvs-plugin", "javacvs-src", "smartcvs-src"])
476 fileset(dir: "${home}/plugins/cvs/lib")
480 pluginDir("testng") {
482 jar("testng-plugin.jar") {
483 noResources("testng")
484 noResources("testng_rt")
489 fileset(dir: "$home/plugins/testng/lib") {
490 include(name: "testng.jar")
491 include(name: "jcommander.jar")
496 layoutPlugin("xpath") {
498 jar("xslt-rt.jar") {module("xslt-rt")}
502 layoutPlugin("xslt-debugger") {
503 jar("xslt-debugger-engine.jar") {
504 module("xslt-debugger-engine") {
508 fileset(dir: "$home/plugins/xslt-debugger/engine/lib") {
509 include(name: "**/rmi-stubs.jar")
512 jar("xslt-debugger-engine-impl.jar") {
513 module("xslt-debugger-engine-impl") {
515 exclude(name: "**/*.jar")
516 exclude(name: "**/*.html")
519 fileset(dir: "$home/plugins/xslt-debugger/engine/impl/lib") {
520 include(name: "**/*.jar")
521 exclude(name: "**/rmi-stubs.jar")
522 include(name: "**/*.html")
527 pluginDir("Groovy") {
531 module("groovy-psi") {
532 exclude(name: "standardDsls/**")
534 module("structuralsearch-groovy")
536 //layout of groovy jars must be consistent with GroovyBuilder.getGroovyRtRoot method
537 jar("groovy-jps-plugin.jar") {
538 module("groovy-jps-plugin")
540 jar("groovy_rt.jar") {
543 jar("groovy-rt-constants.jar") {
544 module("groovy-rt-constants")
546 dir("standardDsls") {
547 fileset(dir: "$home/plugins/groovy/groovy-psi/resources/standardDsls")
550 fileset(dir: "${home}/plugins/groovy/hotswap") {
551 include(name: "gragent.jar")
556 fileset(dir: "$home/plugins/groovy/groovy-psi/resources/conf")
562 jar("tasks-api.jar") { module("tasks-api") }
563 jar("jira.jar") { module("jira") }
564 jar("tasks-core.jar") { module("tasks-core") }
565 jar("jira.jar") { module("jira") }
566 jar("tasks-java.jar") { moduleOptional("tasks-java") }
567 fileset(dir: "${home}/plugins/tasks/tasks-core/lib") {
568 include(name: "**/*.jar")
573 layoutPlugin("devkit") {
574 jar("devkit-jps-plugin.jar") {
575 module("devkit-jps-plugin")
577 fileset(dir: "${home}/plugins/devkit/lib") {
578 include(name: "**/*.jar")
581 layoutPlugin("eclipse") {
582 jar("eclipse-jps-plugin.jar") {
583 module("eclipse-jps-plugin")
585 jar("common-eclipse-util.jar") {
586 module("common-eclipse-util")
590 layoutPlugin("terminal") {
591 fileset(dir: "$home/plugins/terminal/lib") {
592 include(name: "*.jar")
593 include(name: "*.in")
597 layoutPlugin("editorconfig") {
598 fileset(dir: "$home/plugins/editorconfig/lib") {
599 include(name: "**/*.jar")
603 pluginDir("coverage") {
605 jar("coverage.jar") {
606 noResources("coverage-common")
607 noResources("coverage")
610 jar("coverage_rt.jar") {
611 noResources("coverage_rt")
614 jar("resources_en.jar") {
615 module("coverage-common") {
616 patternset(refid: "resources.included")
619 patternset(refid: "resources.included")
623 fileset(dir: "${home}/plugins/coverage/lib", excludes: "**/jacoco_src.zip")
627 pluginDir("java-decompiler") {
629 jar("java-decompiler.jar") {
630 module("java-decompiler-engine")
631 module("java-decompiler-plugin")
636 pluginDir("Kotlin") {
637 fileset(dir: "${home}/build/kotlinc/plugin/Kotlin")
640 layoutPlugin("settings-repository") {
641 fileset(dir: "$home/plugins/settings-repository/lib", excludes: "**/*-sources.jar,**/*.xml,**/com/**,**/org/**,**/java/**,**/dev/**")
657 def setPluginVersionAndSince(String moduleName, String version) {
658 def file = new File(projectBuilder.moduleOutput(findModule(moduleName)) + "/META-INF/plugin.xml")
661 if (!text.contains("<version>")) {
662 def dotIndex = version.indexOf('.')
663 def untilBuild = dotIndex > 0 ? Integer.parseInt(version.substring(0, dotIndex)) + ".*" : version
664 def anchor = text.contains("</id>") ? "</id>" : "</name>"
665 file.text = text.replace(anchor, "${anchor}\n <version>${version}</version>\n <idea-version since-build=\"${version}\" until-build=\"${untilBuild}\"/>\n")
670 def layoutPlugin(String moduleName) {
671 layoutPlugin(moduleName, moduleName, {})
674 def layoutPlugin(String moduleName, Closure custom) {
675 layoutPlugin(moduleName, moduleName, custom)
678 def layoutPlugin(String pluginName, String moduleName) {
679 layoutPlugin(pluginName, moduleName, {})
682 def layoutPlugin(String pluginName, String moduleName, Closure custom) {
683 layoutPlugin(pluginName, moduleName, pluginName, custom)
686 def layoutPlugin(String pluginName, String moduleName, String jarName) {
687 layoutPlugin(pluginName, moduleName, jarName, {})
690 def layoutPlugin(String pluginName, String moduleName, String jarName, Closure custom) {
691 if (isDefined("pluginFilter")) {
692 if (!pluginFilter.contains(moduleName) && !pluginFilter.contains(pluginName)) return
695 def excludedPlugins = getExcludedPlugins()
696 if (excludedPlugins.contains(moduleName) || excludedPlugins.contains(pluginName)) {
700 if (setPluginAndIDEVersionInPluginXml()) {
701 def version = requireProperty("buildNumber", requireProperty("build.number", snapshot))
702 //do not set 'until-build' for snapshot builds compiled locally. Otherwise if you build from sources of e.g. 145 branch you'll get
703 // 'until-build=146.0' in plugin.xml in module outputs and won't be able to run IDE from sources of 'master' branch.
704 if (!version.toLowerCase().endsWith("snapshot")) {
705 setPluginVersionAndSince(moduleName, version)
711 jar("${jarName}.jar") {
712 noResources(moduleName)
715 resources(moduleName)
721 def pluginDir(String dirName, Closure initializer) {
722 if (isDefined("pluginFilter")) {
723 if (!pluginFilter.contains(dirName)) return
726 def excludedPlugins = getExcludedPlugins()
727 if (excludedPlugins.contains(dirName)) {
736 private def resources(List<String> modules) {
737 jar("resources_en.jar") {
740 patternset(refid: "resources.included")
746 private def resources(String moduleName) {
747 jar("resources_en.jar") {
749 patternset(refid: "resources.included")
754 private def noResources(String moduleName) {
756 patternset(refid: "resources.excluded")
760 def moduleOptional(String name) {
761 if (isDefined("pluginFilter")) {
762 if (!pluginFilter.contains(name)) return
768 def moduleOptional(String name, Closure init) {
769 if (isDefined("pluginFilter")) {
770 if (!pluginFilter.contains(name)) return
776 def reorder(String home, String targetDirectory) {
777 projectBuilder.info("Reordering JARs in $targetDirectory")
778 ant.java(classname: "com.intellij.util.io.zip.ReorderJarsMain", fork: true, failonerror: true) {
779 arg(value: "${home}/build/order.txt")
780 arg(value: targetDirectory)
781 arg(value: targetDirectory)
782 arg(value: "${home}/lib")
784 projectBuilder.moduleRuntimeClasspath(findModule("util"), false).each {
785 pathelement(location: it)
792 * @deprecated this method isn't used in new build scripts (it's still used in Android Studio build scripts which aren't rewritten yet);
793 * layout of Android plugin in specified in {@link org.jetbrains.intellij.build.CommunityRepositoryModules}
795 def layoutAndroid(String androidHome, String androidToolsBaseHome) {
797 layoutPlugin("android") {
798 fileset(dir: "$androidHome/lib") {
799 include(name: "**/*.jar")
800 exclude(name: "**/fest-*.jar")
801 exclude(name: "src/*.jar")
804 jar("android-common.jar") {
805 module("android-common")
808 jar("android-rt.jar") {
818 jar("sdk-common.jar") {
821 jar("layoutlib-api.jar") {
822 module("layoutlib-api")
824 jar("manifest-merger.jar") {
825 module("manifest-merger")
827 jar("repository.jar") {
830 jar("sdk-tools.jar") {
831 module("assetstudio")
836 module("lint-checks")
841 module("builder-model")
842 module("builder-test-api")
843 module("instant-run-common")
844 module("instant-run-client")
845 module("instant-run-runtime")
847 jar("androidAnnotations.jar") {
848 fileset(dir: "$androidHome/annotations")
851 jar("android-gradle-jps.jar") { module("android-gradle-jps") }
853 dir("device-art-resources") {
854 fileset(dir: "$androidHome/device-art-resources")
858 jar("android-jps-plugin.jar") { module("android-jps-plugin") }
861 fileset(dir: "$androidToolsBaseHome/templates")
867 def layoutJps(String home, String targetDir, String buildNumber, Closure additionalJars) {
869 zip("standalone-jps-${buildNumber}.zip") {
871 module("annotations-common")
872 module("annotations")
877 jar("jps-launcher.jar") {
878 module("jps-launcher")
881 jar("jps-model.jar") {
882 module("jps-model-api")
883 module("jps-model-impl")
884 module("jps-model-serialization")
886 jar("jps-builders.jar") {
888 module("forms-compiler")
889 module("instrumentation-util")
890 module("instrumentation-util-8")
891 module("javac-ref-scanner-8")
892 module("jps-builders")
893 module("jps-standalone-builder")
894 module("java-runtime")
896 jar("jps-plugin-system.jar") {
897 module("jps-plugin-system")
899 //layout of groovy jars must be consistent with GroovyBuilder.getGroovyRtRoots method
900 jar("groovy-jps-plugin.jar") {
901 module("groovy-jps-plugin")
903 jar("groovy_rt.jar") {
906 jar("groovy-rt-constants.jar") {
907 module("groovy-rt-constants")
909 jar("ui-designer-jps-plugin.jar") { module("ui-designer-jps-plugin") }
912 jar("maven-jps-plugin.jar") { module("maven-jps-plugin") }
913 jar("aether-dependency-resolver.jar") { module("aether-dependency-resolver") }
914 fileset(dir: "$home/plugins/maven/lib") {
915 include(name: "aether-*.jar")
916 include(name: "maven-aether-provider-*.jar")
918 jar("gradle-jps-plugin.jar") { module("gradle-jps-plugin") }
919 fileset(dir: "$home/plugins/maven/maven30-server-impl/lib/maven3/lib") {include(name: "plexus-utils-*.jar")}
921 jar("eclipse-jps-plugin.jar") {
922 module("common-eclipse-util")
923 module("eclipse-jps-plugin")
925 jar("devkit-jps-plugin.jar") { module("devkit-jps-plugin") }
926 jar("intellilang-jps-plugin.jar") { module("intellilang-jps-plugin") }
927 fileset(dir: "$home/lib") {
928 include(name: "jdom.jar")
929 include(name: "jna.jar")
930 include(name: "trove4j.jar")
931 include(name: "asm-all.jar")
932 include(name: "nanoxml-*.jar")
933 include(name: "protobuf-*.jar")
934 include(name: "cli-parser-*.jar")
935 include(name: "log4j.jar")
936 include(name: "jgoodies-forms.jar")
937 include(name: "ecj*.jar")
938 include(name: "netty-all-*.jar")
939 include(name: "snappy-in-java-*.jar")
941 fileset(dir: "$home/jps/lib") {
942 include(name: "optimizedFileManager.jar")
944 jar("ant-jps-plugin.jar") { module("ant-jps-plugin") }
947 jar("jps-build-test-${buildNumber}.jar") {
948 moduleTests("jps-builders")
949 moduleTests("jps-model-tests")
950 moduleTests("jps-serialization-tests")
955 def layout_core(String home, String target) {
957 jar("intellij-core.jar") {
963 module("java-psi-api")
964 module("java-psi-impl")
967 jar("annotations.jar") {
968 module("annotations-common")
969 module("annotations")
972 jar("intellij-core-analysis.jar") {
973 analysisApiModules.each { module it; }
974 analysisImplModules.each { module it; }
977 fileset(dir: "$home/lib") {
978 include(name: "guava-19.0.jar")
979 include(name: "picocontainer.jar")
980 include(name: "trove4j.jar")
981 include(name: "cli-parser-1.1.jar")
982 include(name: "snappy-in-java-0.5.1.jar")
983 include(name: "jayatana-1.2.4.jar")
984 include(name: "imgscalr-lib-4.2.jar")
985 include(name: "batik-all.jar")
986 include(name: "xmlgraphics-commons-1.5.jar")
987 include(name: "xml-apis-ext.jar")