build scripts: take bootstrap version of JPS modules from Maven repository (IJI-99)

Build scripts depend on some code from IntelliJ project (they use JpsModel interfaces to introspect the project configuration, and use code from jps.build modules to compile Java and Groovy code). Before this change when build scripts were invoked from the IDE by running *.gant files they took required classes directly from module output directories, but when they were invoked via gant.xml (e.g. on TeamCity) use prebuilt bootstrap version of these modules from community/build/lib/jps/*.jar files. So if you added usage of a recently added class or method in a script, this will work when running scripts from IDE but fail on TeamCity. Also updating a library used directly or indirectly by build scripts may cause problems because the bootstrap version of JPS JARs may become incompatible with it. And in order to update the bootstrap version of JPS JARs it was needed to build the new JARs and put them to Git.

Now dependencies of build scripts are specified in a special intellij.tools.jps.buildScriptDependencies module which is uploaded as a Maven artifact to https://bintray.com/jetbrains/intellij-third-party-dependencies/intellij-modules-preview and added as a Maven library 'jps-build-script-dependencies-bootstrap', so the same version of dependencies is used when running build scripts from IDE and on TeamCity.

GitOrigin-RevId: 232561ddc3135e97c238c8d4850fbbc2f1a8ab10
This commit is contained in:
nik
2019-08-15 11:49:08 +03:00
committed by intellij-monorepo-bot
parent 4a343e5758
commit 444af5308c
20 changed files with 102 additions and 163 deletions

View File

@@ -1,50 +0,0 @@
<component name="ArtifactManager">
<artifact name="standalone-jps">
<output-path>$PROJECT_DIR$/build/lib/jps</output-path>
<root id="root">
<element id="archive" name="util.jar">
<element id="module-output" name="intellij.platform.util" />
<element id="module-output" name="intellij.platform.util.rt" />
<element id="module-output" name="intellij.platform.util.classLoader" />
</element>
<element id="archive" name="jps-model.jar">
<element id="module-output" name="intellij.platform.jps.model" />
<element id="module-output" name="intellij.platform.jps.model.impl" />
<element id="module-output" name="intellij.platform.jps.model.serialization" />
</element>
<element id="archive" name="jps-builders.jar">
<element id="module-output" name="intellij.java.guiForms.compiler" />
<element id="module-output" name="intellij.java.guiForms.rt" />
<element id="module-output" name="intellij.java.compiler.instrumentationUtil" />
<element id="module-output" name="intellij.java.rt" />
<element id="module-output" name="intellij.platform.jps.build" />
<element id="module-output" name="intellij.tools.jps.build.standalone" />
<element id="module-output" name="intellij.java.compiler.instrumentationUtil.java8" />
</element>
<element id="archive" name="groovy-jps-plugin.jar">
<element id="module-output" name="intellij.groovy.jps" />
</element>
<element id="archive" name="groovy_rt.jar">
<element id="module-output" name="intellij.groovy.rt" />
</element>
<element id="archive" name="ui-designer-jps-plugin.jar">
<element id="module-output" name="intellij.java.guiForms.jps" />
</element>
<element id="archive" name="antlayout.jar">
<element id="module-output" name="intellij.tools.jps.antTasks" />
</element>
<element id="archive" name="groovy-rt-constants.jar">
<element id="module-output" name="intellij.groovy.constants.rt" />
</element>
<element id="archive" name="jps-builders-6.jar">
<element id="module-output" name="intellij.platform.jps.build.javac.rt" />
</element>
<element id="archive" name="aether-dependency-resolver.jar">
<element id="module-output" name="intellij.java.aetherDependencyResolver" />
</element>
<element id="archive" name="testFramework.core.jar">
<element id="module-output" name="intellij.platform.testFramework.core" />
</element>
</root>
</artifact>
</component>

View File

@@ -0,0 +1,80 @@
<component name="libraryTable">
<library name="jps-build-script-dependencies-bootstrap" type="repository">
<properties maven-id="com.jetbrains.intellij.tools:jps-build-script-dependencies:192.6416" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/tools/jps-build-script-dependencies/192.6416/jps-build-script-dependencies-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/tools/jps-build-standalone/192.6416/jps-build-standalone-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/groovy/groovy-all/2.4.17/groovy-all-2.4.17.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/platform/jps-build/192.6416/jps-build-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/platform/jps-build-javac-rt/192.6416/jps-build-javac-rt-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/java/java-compiler-instrumentation-util-java8/192.6416/java-compiler-instrumentation-util-java8-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/java/java-aether-dependency-resolver/192.6416/java-aether-dependency-resolver-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpmime/4.5.9/httpmime-4.5.9.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.9/httpclient-4.5.9.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.4.11/httpcore-4.4.11.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/aether/aether-api/1.1.0/aether-api-1.1.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/aether/aether-impl/1.1.0/aether-impl-1.1.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/aether/aether-spi/1.1.0/aether-spi-1.1.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/aether/aether-util/1.1.0/aether-util-1.1.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/aether/aether-connector-basic/1.1.0/aether-connector-basic-1.1.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/aether/aether-transport-file/1.1.0/aether-transport-file-1.1.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/aether/aether-transport-http/1.1.0/aether-transport-http-1.1.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-aether-provider/3.3.9/maven-aether-provider-3.3.9.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-model-builder/3.3.9/maven-model-builder-3.3.9.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-model/3.3.9/maven-model-3.3.9.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-artifact/3.3.9/maven-artifact-3.3.9.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-repository-metadata/3.3.9/maven-repository-metadata-3.3.9.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/maven/maven-builder-support/3.3.9/maven-builder-support-3.3.9.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/plexus/plexus-component-annotations/1.6/plexus-component-annotations-1.6.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/asm-all/7.0.1/asm-all-7.0.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/jdom/2.0.6/jdom-2.0.6.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/be/cyberelf/nanoxml/nanoxml/2.2.3/nanoxml-2.2.3.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jgoodies/forms/1.1-preview/forms-1.1-preview.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/java/java-rt/192.6416/java-rt-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/25.1-jre/guava-25.1-jre.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-codec-http2/4.1.38.Final/netty-codec-http2-4.1.38.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-common/4.1.38.Final/netty-common-4.1.38.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-buffer/4.1.38.Final/netty-buffer-4.1.38.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-transport/4.1.38.Final/netty-transport-4.1.38.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-resolver/4.1.38.Final/netty-resolver-4.1.38.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-codec/4.1.38.Final/netty-codec-4.1.38.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-handler/4.1.38.Final/netty-handler-4.1.38.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-codec-http/4.1.38.Final/netty-codec-http-4.1.38.Final.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/platform/jps-model/192.6416/jps-model-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/github/spullara/cli-parser/cli-parser/1.1.5/cli-parser-1.1.5.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/platform/jps-model-serialization/192.6416/jps-model-serialization-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.17/log4j-1.2.17.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/google/protobuf/protobuf-java/3.5.1/protobuf-java-3.5.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/groovy/groovy-jps/192.6416/groovy-jps-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/groovy/groovy-constants-rt/192.6416/groovy-constants-rt-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/platform/jps-model-impl/192.6416/jps-model-impl-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/java/java-compiler-instrumentation-util/192.6416/java-compiler-instrumentation-util-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/groovy/groovy-rt/192.6416/groovy-rt-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/annotations-java5/17.0.0/annotations-java5-17.0.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/platform/util-class-loader/192.6416/util-class-loader-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/platform/util-rt/192.6416/util-rt-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/trove4j/1.0.20190514/trove4j-1.0.20190514.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/java/java-gui-forms-jps/192.6416/java-gui-forms-jps-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/platform/util/192.6416/util-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/net/java/dev/jna/jna-platform/5.3.1/jna-platform-5.3.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/oro/oro/2.0.8/oro-2.0.8.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/lz4/lz4-java/1.6.0/lz4-java-1.6.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/java/java-gui-forms-compiler/192.6416/java-gui-forms-compiler-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/java/java-gui-forms-rt/192.6416/java-gui-forms-rt-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/jetbrains/intellij/tools/jps-ant-tasks/192.6416/jps-ant-tasks-192.6416.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/gant/gant_groovy2.3/1.9.11/gant_groovy2.3-1.9.11.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@@ -6,6 +6,7 @@ repositories {
maven { url "https://cache-redirector.jetbrains.com/intellij-third-party-dependencies" }
maven { url "https://cache-redirector.jetbrains.com/jetbrains.bintray.com/test-discovery" }
maven { url "https://cache-redirector.jetbrains.com/jcenter.bintray.com" }
maven { url 'https://www.jetbrains.com/intellij-repository/releases' }
}
configurations {
@@ -13,39 +14,12 @@ configurations {
testDiscoveryDeps
}
List<String> projectLibraries = [
"ASM",
"jetbrains-annotations-java5",
"Groovy",
"cli-parser",
"protobuf",
"OroMatcher",
"commons-codec",
"commons-logging",
"commons-compress",
"Trove4j",
"JDOM",
"NanoXML",
"Guava",
"JUnit4",
"netty-codec-http",
"lz4-java",
"gant-groovy",
"Log4J",
"Slf4j",
"jna",
"jgoodies-forms",
"http-client",
"maven-model",
"gson"
]
dependencies {
(projectLibraries.collect { loadProjectLibraryProperties(it) } +
loadModuleLibraryProperties("aether-dependency-resolver/intellij.java.aetherDependencyResolver.iml")
).each { properties ->
buildScriptsDeps(properties.first, { transitive = properties.second })
}
def jpsLibraryCoordinates = loadProjectLibraryProperties("jps-build-script-dependencies-bootstrap").first
def jpsLibraryVersion = jpsLibraryCoordinates.substring(jpsLibraryCoordinates.lastIndexOf(':')+1)
buildScriptsDeps(jpsLibraryCoordinates)
buildScriptsDeps('commons-cli:commons-cli:1.2')
buildScriptsDeps('com.jetbrains.intellij.platform:test-framework-core:' + jpsLibraryVersion)
}
/**
@@ -85,27 +59,6 @@ private Tuple2<String, Boolean> loadProjectLibraryProperties(String libraryName,
loadLibraryProperties(propertiesTags.first())
}
private List<Tuple2<String, Boolean>> loadModuleLibraryProperties(String moduleFileRelativePath) {
File file = new File(project.rootDir, "../../$moduleFileRelativePath")
if (!file.exists()) {
throw new GradleException("Cannot find $moduleFileRelativePath module: $file doesn't exist")
}
def root = new XmlParser().parse(file)
def rootManager = root.component?.find { it.@name == 'NewModuleRootManager' }
if (rootManager == null) {
throw new GradleException("Cannot find 'NewModuleRootManager' component in $file")
}
rootManager.orderEntry.findAll { it.@type == 'module-library' }.collect {
def libraryTag = it.library.first()
if (libraryTag.properties.isEmpty()) {
throw new GradleException("Library '${libraryTag.'@name'}' in $moduleFileRelativePath is not a repository library")
}
//noinspection GroovyAssignabilityCheck
loadLibraryProperties(libraryTag.properties.first())
}
}
private static Tuple2<String, Boolean> loadLibraryProperties(Node propertiesTag) {
new Tuple2(propertiesTag.'@maven-id', propertiesTag.'@include-transitive-deps' != "false")
}

View File

@@ -43,17 +43,11 @@
<target name="doGant" depends="init">
<path id="gant.classpath">
<fileset dir="${project.home}/build/lib/jps">
<include name="*.jar"/>
</fileset>
<pathelement path="${project.home}/platform/build-scripts/groovy"/>
<pathelement path="${project.home}/build/groovy"/>
<fileset dir="${project.home}/build/dependencies/build/build-scripts-deps">
<include name="*.jar"/>
</fileset>
<fileset dir="${idea.lib}">
<include name="snappy-in-java-*.jar"/>
</fileset>
</path>
<taskdef name="gant" classname="org.jetbrains.jps.gant.GantWithClasspathTask">

View File

@@ -11,35 +11,6 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="Groovy" level="project" />
<orderEntry type="library" exported="" name="Ant" level="project" />
<orderEntry type="library" scope="RUNTIME" name="ASM" level="project" />
<orderEntry type="library" exported="" scope="RUNTIME" name="cli-parser" level="project" />
<orderEntry type="library" scope="RUNTIME" name="JDOM" level="project" />
<orderEntry type="library" scope="RUNTIME" name="protobuf" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Log4J" level="project" />
<orderEntry type="library" scope="RUNTIME" name="jna" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Trove4j" level="project" />
<orderEntry type="module" module-name="intellij.platform.jps.model" exported="" />
<orderEntry type="module" module-name="intellij.tools.jps.build.standalone" exported="" />
<orderEntry type="module-library" exported="" scope="PROVIDED">
<library name="commons-cli" type="repository">
<properties maven-id="commons-cli:commons-cli:1.2" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-cli/commons-cli/1.2/commons-cli-1.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-cli/commons-cli/1.2/commons-cli-1.2-sources.jar!/" />
</SOURCES>
</library>
</orderEntry>
<orderEntry type="module" module-name="intellij.tools.jps.antTasks" exported="" />
<orderEntry type="module" module-name="intellij.platform.util" exported="" />
<orderEntry type="module" module-name="intellij.platform.buildScripts" exported="" />
<orderEntry type="module" module-name="intellij.java.guiForms.jps" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.groovy.jps" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.groovy.rt" scope="RUNTIME" />
<orderEntry type="library" scope="RUNTIME" name="netty-codec-http" level="project" />
</component>
</module>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -549,6 +549,7 @@ class CommunityLibraryLicenses {
jetbrainsLibrary("intellij-markdown"),
jetbrainsLibrary("intellij-test-discovery"),
jetbrainsLibrary("JPS"),
jetbrainsLibrary("jps-build-script-dependencies-bootstrap"),
jetbrainsLibrary("kotlin-reflect"),
jetbrainsLibrary("kotlin-script-runtime"),
jetbrainsLibrary("kotlin-stdlib-jdk8"),

View File

@@ -8,28 +8,20 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="Groovy" level="project" />
<orderEntry type="library" exported="" name="Ant" level="project" />
<orderEntry type="library" scope="RUNTIME" name="ASM" level="project" />
<orderEntry type="library" exported="" scope="RUNTIME" name="cli-parser" level="project" />
<orderEntry type="library" scope="RUNTIME" name="JDOM" level="project" />
<orderEntry type="library" scope="RUNTIME" name="protobuf" level="project" />
<orderEntry type="library" name="Log4J" level="project" />
<orderEntry type="library" scope="RUNTIME" name="jna" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Trove4j" level="project" />
<orderEntry type="module" module-name="intellij.tools.jps.antTasks" />
<orderEntry type="module" module-name="intellij.platform.jps.model" exported="" />
<orderEntry type="module" module-name="intellij.tools.jps.build.standalone" exported="" />
<orderEntry type="module" module-name="intellij.platform.util" exported="" />
<orderEntry type="module" module-name="intellij.java.guiForms.jps" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.groovy.jps" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.groovy.rt" scope="RUNTIME" />
<orderEntry type="library" exported="" name="gant-groovy" level="project" />
<orderEntry type="library" scope="TEST" name="JUnit4" level="project" />
<orderEntry type="library" scope="RUNTIME" name="netty-codec-http" level="project" />
<orderEntry type="library" name="maven-model" level="project" />
<orderEntry type="library" name="gson" level="project" />
<orderEntry type="library" name="http-client" level="project" />
<orderEntry type="library" name="commons-compress" level="project" />
<orderEntry type="library" exported="" name="jps-build-script-dependencies-bootstrap" level="project" />
<orderEntry type="module-library" exported="" scope="PROVIDED">
<library name="commons-cli" type="repository">
<properties maven-id="commons-cli:commons-cli:1.2" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-cli/commons-cli/1.2/commons-cli-1.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-cli/commons-cli/1.2/commons-cli-1.2-sources.jar!/" />
</SOURCES>
</library>
</orderEntry>
</component>
</module>

View File

@@ -900,8 +900,8 @@ class AppTest {
addGroovyLibrary(anotherModule)
PsiTestUtil.addProjectLibrary(module, "junit", IntelliJProjectConfiguration.getProjectLibraryClassesRootPaths("JUnit3"))
PsiTestUtil.addProjectLibrary(module, "cli", IntelliJProjectConfiguration.getModuleLibrary("intellij.idea.community.build", "commons-cli").classesPaths)
PsiTestUtil.addProjectLibrary(anotherModule, "cli", IntelliJProjectConfiguration.getModuleLibrary("intellij.idea.community.build", "commons-cli").classesPaths)
PsiTestUtil.addProjectLibrary(module, "cli", IntelliJProjectConfiguration.getModuleLibrary("intellij.platform.buildScripts", "commons-cli").classesPaths)
PsiTestUtil.addProjectLibrary(anotherModule, "cli", IntelliJProjectConfiguration.getModuleLibrary("intellij.platform.buildScripts", "commons-cli").classesPaths)
myFixture.addFileToProject("a.groovy", "class Foo extends GroovyTestCase {}")
myFixture.addFileToProject("b.groovy", "class Bar extends CliBuilder {}")

View File

@@ -7,8 +7,6 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Groovy" level="project" />
<orderEntry type="module" module-name="intellij.tools.jps.build.standalone" />
<orderEntry type="module" module-name="intellij.idea.community.build" />
</component>
</module>