mirror of https://github.com/apache/lucene.git
Try to fix the gradle compilation in idea (#945)
* Try to fix the gradle compilation in idea * Try to detect sync and build phases within intellij and act accordingly to support both modes of compilation (gradle and intellij).
This commit is contained in:
parent
1dceff12c8
commit
54c67db10d
|
@ -15,16 +15,16 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Try to detect IntelliJ model loader ("reimport") early.
|
// Try to detect IntelliJ model loader project structure "sync"
|
||||||
rootProject.ext.isIdea = System.getProperty("idea.active") != null ||
|
//
|
||||||
gradle.startParameter.taskNames.contains('idea') ||
|
rootProject.ext.isIdea = Boolean.parseBoolean(System.getProperty("idea.active", "false"))
|
||||||
gradle.startParameter.taskNames.contains('cleanIdea')
|
rootProject.ext.isIdeaSync = Boolean.parseBoolean(System.getProperty("idea.sync.active", "false"))
|
||||||
|
rootProject.ext.isIdeaBuild = (isIdea && !isIdeaSync)
|
||||||
|
|
||||||
if (isIdea) {
|
if (isIdea) {
|
||||||
logger.warn("IntelliJ Idea IDE detected.")
|
logger.warn("IntelliJ Idea IDE detected.")
|
||||||
}
|
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
apply plugin: 'idea'
|
apply plugin: 'idea'
|
||||||
|
|
||||||
idea {
|
idea {
|
||||||
|
@ -34,4 +34,27 @@ allprojects {
|
||||||
downloadSources = true
|
downloadSources = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isIdeaBuild) {
|
||||||
|
// Skip certain long tasks that are dependencies
|
||||||
|
// of 'assemble' if we're building from within IntelliJ.
|
||||||
|
gradle.taskGraph.whenReady { taskGraph ->
|
||||||
|
def tasks = taskGraph.getAllTasks()
|
||||||
|
|
||||||
|
def skipTasks = [
|
||||||
|
// Skip site javadoc rendering
|
||||||
|
".*:(renderSiteJavadoc)",
|
||||||
|
]
|
||||||
|
|
||||||
|
logger.lifecycle("Skipping certain tasks on IntelliJ builds")
|
||||||
|
tasks.each { task ->
|
||||||
|
def taskPath = task.path
|
||||||
|
if (skipTasks.any { pattern -> taskPath ==~ pattern }) {
|
||||||
|
logger.debug("Skipping task on IntelliJ: " + taskPath)
|
||||||
|
task.enabled = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,7 @@ allprojects {
|
||||||
|
|
||||||
// LUCENE-10304: if we modify the classpath here, IntelliJ no longer sees the dependencies as compile-time
|
// LUCENE-10304: if we modify the classpath here, IntelliJ no longer sees the dependencies as compile-time
|
||||||
// dependencies, don't know why.
|
// dependencies, don't know why.
|
||||||
if (!rootProject.ext.isIdea) {
|
if (!rootProject.ext.isIdeaSync) {
|
||||||
task.classpath = modularPaths.compilationClasspath
|
task.classpath = modularPaths.compilationClasspath
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ allprojects {
|
||||||
|
|
||||||
// LUCENE-10304: if we modify the classpath here, IntelliJ no longer sees the dependencies as compile-time
|
// LUCENE-10304: if we modify the classpath here, IntelliJ no longer sees the dependencies as compile-time
|
||||||
// dependencies, don't know why.
|
// dependencies, don't know why.
|
||||||
if (!rootProject.ext.isIdea) {
|
if (!rootProject.ext.isIdeaSync) {
|
||||||
def jarTask = project.tasks.getByName(mainSourceSet.getJarTaskName())
|
def jarTask = project.tasks.getByName(mainSourceSet.getJarTaskName())
|
||||||
def testJarTask = project.tasks.getByName(testSourceSet.getJarTaskName())
|
def testJarTask = project.tasks.getByName(testSourceSet.getJarTaskName())
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue