mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Gradle java support extraction: move 'intellij.java.compiler' dependant features
This commit is contained in:
+1
-1
@@ -116,6 +116,6 @@ public class BuildArtifactsBeforeRunTaskProvider extends BuildArtifactsBeforeRun
|
||||
|
||||
@Override
|
||||
protected ProjectTask createProjectTask(Project project, List<Artifact> artifacts) {
|
||||
return ProjectTaskManager.getInstance(project).createArtifactsBuildTask(true, artifacts.toArray(new Artifact[0]));
|
||||
return ProjectTaskManager.getInstance(project).createBuildTask(true, artifacts.toArray(new Artifact[0]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,9 +17,12 @@ package com.intellij.task.impl;
|
||||
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.task.ArtifactBuildTask;
|
||||
import com.intellij.task.ProjectModelBuildTask;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @deprecated to be removed, use {@link ProjectModelBuildTask}
|
||||
*
|
||||
* @author Vladislav.Soroka
|
||||
* @since 5/14/2016
|
||||
*/
|
||||
|
||||
+14
-11
@@ -23,6 +23,7 @@ import com.intellij.openapi.compiler.CompilerManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ProjectModelBuildableElement;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -45,8 +46,8 @@ import java.util.stream.Stream;
|
||||
* @author Vladislav.Soroka
|
||||
* @since 5/11/2016
|
||||
*/
|
||||
public class InternalProjectTaskRunner extends ProjectTaskRunner {
|
||||
private static final Logger LOG = Logger.getInstance(InternalProjectTaskRunner.class);
|
||||
public class JpsProjectTaskRunner extends ProjectTaskRunner {
|
||||
private static final Logger LOG = Logger.getInstance(JpsProjectTaskRunner.class);
|
||||
public static final Key<Object> EXECUTION_SESSION_ID_KEY = ExecutionManagerImpl.EXECUTION_SESSION_ID_KEY;
|
||||
|
||||
@Override
|
||||
@@ -73,7 +74,7 @@ public class InternalProjectTaskRunner extends ProjectTaskRunner {
|
||||
return tasks.stream().collect(Collectors.groupingBy(o -> {
|
||||
if (o instanceof ModuleFilesBuildTask) return ModuleFilesBuildTask.class;
|
||||
if (o instanceof ModuleBuildTask) return ModuleBuildTask.class;
|
||||
if (o instanceof ArtifactBuildTask) return ArtifactBuildTask.class;
|
||||
if (o instanceof ProjectModelBuildTask) return ProjectModelBuildTask.class;
|
||||
return o.getClass();
|
||||
}));
|
||||
}
|
||||
@@ -191,18 +192,20 @@ public class InternalProjectTaskRunner extends ProjectTaskRunner {
|
||||
@Nullable CompileStatusNotification compileNotification,
|
||||
@NotNull Map<Class<? extends ProjectTask>, List<ProjectTask>> tasksMap) {
|
||||
|
||||
Collection<? extends ProjectTask> buildTasks = tasksMap.get(ArtifactBuildTask.class);
|
||||
Collection<? extends ProjectTask> buildTasks = tasksMap.get(ProjectModelBuildTask.class);
|
||||
if (!ContainerUtil.isEmpty(buildTasks)) {
|
||||
List<Artifact> toMake = new SmartList<>();
|
||||
List<Artifact> toCompile = new SmartList<>();
|
||||
for (ProjectTask buildProjectTask : buildTasks) {
|
||||
ArtifactBuildTask artifactBuildTask = (ArtifactBuildTask)buildProjectTask;
|
||||
|
||||
if (artifactBuildTask.isIncrementalBuild()) {
|
||||
toMake.add(artifactBuildTask.getArtifact());
|
||||
}
|
||||
else {
|
||||
toCompile.add(artifactBuildTask.getArtifact());
|
||||
ProjectModelBuildTask buildTask = (ProjectModelBuildTask)buildProjectTask;
|
||||
ProjectModelBuildableElement buildableElement = buildTask.getBuildableElement();
|
||||
if (buildableElement instanceof Artifact) {
|
||||
if (buildTask.isIncrementalBuild()) {
|
||||
toMake.add((Artifact)buildableElement);
|
||||
}
|
||||
else {
|
||||
toCompile.add((Artifact)buildableElement);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package com.intellij.packaging.artifacts;
|
||||
|
||||
import com.intellij.openapi.roots.ProjectModelElement;
|
||||
import com.intellij.openapi.roots.ProjectModelBuildableElement;
|
||||
import com.intellij.openapi.util.UserDataHolder;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.packaging.elements.CompositePackagingElement;
|
||||
@@ -29,7 +29,7 @@ import java.util.Collection;
|
||||
*
|
||||
* @author nik
|
||||
*/
|
||||
public interface Artifact extends UserDataHolder, ProjectModelElement {
|
||||
public interface Artifact extends UserDataHolder, ProjectModelBuildableElement {
|
||||
@NotNull
|
||||
ArtifactType getArtifactType();
|
||||
|
||||
|
||||
@@ -18,9 +18,15 @@ package com.intellij.task;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
|
||||
/**
|
||||
*
|
||||
* @deprecated tobe removed, use {@link ProjectModelBuildTask}
|
||||
*
|
||||
* @author Vladislav.Soroka
|
||||
* @since 7/18/2016
|
||||
*/
|
||||
public interface ArtifactBuildTask extends BuildTask {
|
||||
public interface ArtifactBuildTask extends ProjectModelBuildTask<Artifact> {
|
||||
Artifact getArtifact();
|
||||
|
||||
@Override
|
||||
default Artifact getBuildableElement() {return getArtifact();}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.task;
|
||||
|
||||
import com.intellij.openapi.roots.ProjectModelBuildableElement;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public interface ProjectModelBuildTask<T extends ProjectModelBuildableElement> extends BuildTask {
|
||||
T getBuildableElement();
|
||||
}
|
||||
+14
-8
@@ -18,8 +18,8 @@ package com.intellij.task;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ProjectModelBuildableElement;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -115,16 +115,16 @@ public abstract class ProjectTaskManager {
|
||||
compile(files, null);
|
||||
}
|
||||
|
||||
public abstract void build(@NotNull Artifact[] artifacts, @Nullable ProjectTaskNotification callback);
|
||||
public abstract void build(@NotNull ProjectModelBuildableElement[] buildableElements, @Nullable ProjectTaskNotification callback);
|
||||
|
||||
public void build(@NotNull Artifact[] artifacts) {
|
||||
build(artifacts, null);
|
||||
public void build(@NotNull ProjectModelBuildableElement... buildableElements) {
|
||||
build(buildableElements, null);
|
||||
}
|
||||
|
||||
public abstract void rebuild(@NotNull Artifact[] artifacts, @Nullable ProjectTaskNotification callback);
|
||||
public abstract void rebuild(@NotNull ProjectModelBuildableElement[] buildableElements, @Nullable ProjectTaskNotification callback);
|
||||
|
||||
public void rebuild(@NotNull Artifact... artifacts) {
|
||||
rebuild(artifacts, null);
|
||||
public void rebuild(@NotNull ProjectModelBuildableElement... buildableElements) {
|
||||
rebuild(buildableElements, null);
|
||||
}
|
||||
|
||||
public abstract ProjectTask createAllModulesBuildTask(boolean isIncrementalBuild, Project project);
|
||||
@@ -139,6 +139,12 @@ public abstract class ProjectTaskManager {
|
||||
boolean includeDependentModules,
|
||||
boolean includeRuntimeDependencies);
|
||||
|
||||
public abstract ProjectTask createArtifactsBuildTask(boolean isIncrementalBuild, Artifact... artifacts);
|
||||
public abstract ProjectTask createBuildTask(boolean isIncrementalBuild, ProjectModelBuildableElement... artifacts);
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #createBuildTask(boolean, ProjectModelBuildableElement...)}
|
||||
*/
|
||||
public ProjectTask createArtifactsBuildTask(boolean isIncrementalBuild, ProjectModelBuildableElement... artifacts) {
|
||||
return createBuildTask(isIncrementalBuild, artifacts);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.task.impl;
|
||||
|
||||
import com.intellij.openapi.roots.ProjectModelBuildableElement;
|
||||
import com.intellij.task.ProjectModelBuildTask;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
public class ProjectModelBuildTaskImpl<T extends ProjectModelBuildableElement> extends AbstractBuildTask
|
||||
implements ProjectModelBuildTask<T> {
|
||||
private final T myBuildableElement;
|
||||
|
||||
public ProjectModelBuildTaskImpl(T buildableElement, boolean isIncrementalBuild) {
|
||||
super(isIncrementalBuild);
|
||||
myBuildableElement = buildableElement;
|
||||
}
|
||||
|
||||
@Override
|
||||
public T getBuildableElement() {
|
||||
return myBuildableElement;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public String getPresentableName() {
|
||||
return "Project model element '" + myBuildableElement + "' build task";
|
||||
}
|
||||
}
|
||||
+45
-22
@@ -19,9 +19,9 @@ import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ProjectFileIndex;
|
||||
import com.intellij.openapi.roots.ProjectModelBuildableElement;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.task.*;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.SmartList;
|
||||
@@ -29,13 +29,18 @@ import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.intellij.util.containers.ContainerUtil.list;
|
||||
import static com.intellij.util.containers.ContainerUtil.map;
|
||||
import static java.util.Arrays.stream;
|
||||
import static java.util.stream.Collectors.groupingBy;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
@@ -43,7 +48,7 @@ import static com.intellij.util.containers.ContainerUtil.map;
|
||||
*/
|
||||
public class ProjectTaskManagerImpl extends ProjectTaskManager {
|
||||
|
||||
private final ProjectTaskRunner myDefaultProjectTaskRunner = new InternalProjectTaskRunner();
|
||||
private final ProjectTaskRunner myDummyTaskRunner = new DummyTaskRunner();
|
||||
|
||||
public ProjectTaskManagerImpl(@NotNull Project project) {
|
||||
super(project);
|
||||
@@ -61,8 +66,9 @@ public class ProjectTaskManagerImpl extends ProjectTaskManager {
|
||||
|
||||
@Override
|
||||
public void compile(@NotNull VirtualFile[] files, @Nullable ProjectTaskNotification callback) {
|
||||
List<ModuleFilesBuildTask> buildTasks = Arrays.stream(files)
|
||||
.collect(Collectors.groupingBy(file -> ProjectFileIndex.SERVICE.getInstance(myProject).getModuleForFile(file, false)))
|
||||
List<ModuleFilesBuildTask> buildTasks = stream(files)
|
||||
.collect(groupingBy(
|
||||
file -> ProjectFileIndex.SERVICE.getInstance(myProject).getModuleForFile(file, false)))
|
||||
.entrySet().stream()
|
||||
.map(entry -> new ModuleFilesBuildTaskImpl(entry.getKey(), false, entry.getValue()))
|
||||
.collect(Collectors.toList());
|
||||
@@ -71,13 +77,13 @@ public class ProjectTaskManagerImpl extends ProjectTaskManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void build(@NotNull Artifact[] artifacts, @Nullable ProjectTaskNotification callback) {
|
||||
doBuild(artifacts, callback, true);
|
||||
public void build(@NotNull ProjectModelBuildableElement[] buildableElements, @Nullable ProjectTaskNotification callback) {
|
||||
doBuild(buildableElements, callback, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rebuild(@NotNull Artifact[] artifacts, @Nullable ProjectTaskNotification callback) {
|
||||
doBuild(artifacts, callback, false);
|
||||
public void rebuild(@NotNull ProjectModelBuildableElement[] buildableElements, @Nullable ProjectTaskNotification callback) {
|
||||
doBuild(buildableElements, callback, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -115,10 +121,11 @@ public class ProjectTaskManagerImpl extends ProjectTaskManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProjectTask createArtifactsBuildTask(boolean isIncrementalBuild, Artifact... artifacts) {
|
||||
return artifacts.length == 1
|
||||
? new ArtifactBuildTaskImpl(artifacts[0], isIncrementalBuild)
|
||||
: new ProjectTaskList(map(list(artifacts), artifact -> new ArtifactBuildTaskImpl(artifact, isIncrementalBuild)));
|
||||
public ProjectTask createBuildTask(boolean isIncrementalBuild, ProjectModelBuildableElement... buildableElements) {
|
||||
return buildableElements.length == 1
|
||||
? new ProjectModelBuildTaskImpl<>(buildableElements[0], isIncrementalBuild)
|
||||
: new ProjectTaskList(map(list(buildableElements),
|
||||
buildableElement -> new ProjectModelBuildTaskImpl<>(buildableElement, isIncrementalBuild)));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -131,13 +138,12 @@ public class ProjectTaskManagerImpl extends ProjectTaskManager {
|
||||
List<Pair<ProjectTaskRunner, Collection<? extends ProjectTask>>> toRun = new SmartList<>();
|
||||
|
||||
Consumer<Collection<? extends ProjectTask>> taskClassifier = tasks -> {
|
||||
Map<ProjectTaskRunner, ? extends List<? extends ProjectTask>> toBuild =
|
||||
tasks.stream().collect(Collectors.groupingBy(aTask -> {
|
||||
for (ProjectTaskRunner runner : getTaskRunners()) {
|
||||
if (runner.canRun(aTask)) return runner;
|
||||
}
|
||||
return myDefaultProjectTaskRunner;
|
||||
}));
|
||||
Map<ProjectTaskRunner, ? extends List<? extends ProjectTask>> toBuild = tasks.stream().collect(
|
||||
groupingBy(aTask -> stream(getTaskRunners())
|
||||
.filter(runner -> runner.canRun(aTask))
|
||||
.findFirst()
|
||||
.orElse(myDummyTaskRunner))
|
||||
);
|
||||
for (Map.Entry<ProjectTaskRunner, ? extends List<? extends ProjectTask>> entry : toBuild.entrySet()) {
|
||||
toRun.add(Pair.create(entry.getKey(), entry.getValue()));
|
||||
}
|
||||
@@ -208,7 +214,24 @@ public class ProjectTaskManagerImpl extends ProjectTaskManager {
|
||||
return ProjectTaskRunner.EP_NAME.getExtensions();
|
||||
}
|
||||
|
||||
private void doBuild(@NotNull Artifact[] artifacts, @Nullable ProjectTaskNotification callback, boolean isIncrementalBuild) {
|
||||
run(createArtifactsBuildTask(isIncrementalBuild, artifacts), callback);
|
||||
private void doBuild(@NotNull ProjectModelBuildableElement[] buildableElements,
|
||||
@Nullable ProjectTaskNotification callback,
|
||||
boolean isIncrementalBuild) {
|
||||
run(createBuildTask(isIncrementalBuild, buildableElements), callback);
|
||||
}
|
||||
|
||||
private static class DummyTaskRunner extends ProjectTaskRunner {
|
||||
@Override
|
||||
public void run(@NotNull Project project,
|
||||
@NotNull ProjectTaskContext context,
|
||||
@Nullable ProjectTaskNotification callback,
|
||||
@NotNull Collection<? extends ProjectTask> tasks) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canRun(@NotNull ProjectTask projectTask) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.openapi.roots;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
/**
|
||||
* Base interface for elements of the project model which can be built by some build system.
|
||||
*
|
||||
* @author Vladislav.Soroka
|
||||
*/
|
||||
@ApiStatus.Experimental
|
||||
public interface ProjectModelBuildableElement extends ProjectModelElement {
|
||||
}
|
||||
@@ -14,7 +14,6 @@
|
||||
<orderEntry type="module" module-name="intellij.gradle.toolingExtension.impl" />
|
||||
<orderEntry type="module" module-name="intellij.gradle.jps" />
|
||||
<orderEntry type="module" module-name="intellij.platform.lang" />
|
||||
<orderEntry type="module" module-name="intellij.java.compiler" />
|
||||
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
|
||||
<orderEntry type="library" name="swingx" level="project" />
|
||||
<orderEntry type="library" exported="" name="Slf4j" level="project" />
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.plugins.gradle.execution.build;
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.externalSystem.model.execution.ExternalTaskPojo;
|
||||
import com.intellij.task.ProjectModelBuildTask;
|
||||
import com.intellij.util.Consumer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
* @since 7/11/2016
|
||||
*/
|
||||
public interface GradleArtifactBuildTasksProvider {
|
||||
ExtensionPointName<GradleArtifactBuildTasksProvider> EP_NAME =
|
||||
ExtensionPointName.create("org.jetbrains.plugins.gradle.artifactBuildTasksProvider");
|
||||
|
||||
boolean isApplicable(@NotNull ProjectModelBuildTask buildTask);
|
||||
|
||||
void addArtifactsTargetsBuildTasks(@NotNull ProjectModelBuildTask buildTask,
|
||||
@NotNull Consumer<ExternalTaskPojo> cleanTasksConsumer,
|
||||
@NotNull Consumer<ExternalTaskPojo> buildTasksConsumer);
|
||||
}
|
||||
@@ -36,8 +36,9 @@ import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.UserDataHolderBase;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.task.*;
|
||||
import com.intellij.task.impl.InternalProjectTaskRunner;
|
||||
import com.intellij.task.impl.JpsProjectTaskRunner;
|
||||
import com.intellij.util.SmartList;
|
||||
import com.intellij.util.SystemProperties;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
@@ -85,12 +86,12 @@ public class GradleProjectTaskRunner extends ProjectTaskRunner {
|
||||
MultiMap<String, String> cleanTasksMap = MultiMap.createLinkedSet();
|
||||
MultiMap<String, String> initScripts = MultiMap.createLinkedSet();
|
||||
|
||||
Map<Class<? extends ProjectTask>, List<ProjectTask>> taskMap = InternalProjectTaskRunner.groupBy(tasks);
|
||||
Map<Class<? extends ProjectTask>, List<ProjectTask>> taskMap = JpsProjectTaskRunner.groupBy(tasks);
|
||||
|
||||
List<Module> modules = addModulesBuildTasks(taskMap.get(ModuleBuildTask.class), buildTasksMap, initScripts);
|
||||
// TODO there should be 'gradle' way to build files instead of related modules entirely
|
||||
List<Module> modulesOfFiles = addModulesBuildTasks(taskMap.get(ModuleFilesBuildTask.class), buildTasksMap, initScripts);
|
||||
addArtifactsBuildTasks(taskMap.get(ArtifactBuildTask.class), cleanTasksMap, buildTasksMap);
|
||||
addArtifactsBuildTasks(taskMap.get(ProjectModelBuildTask.class), cleanTasksMap, buildTasksMap);
|
||||
|
||||
// TODO send a message if nothing to build
|
||||
Set<String> rootPaths = buildTasksMap.keySet();
|
||||
@@ -177,10 +178,12 @@ public class GradleProjectTaskRunner extends ProjectTaskRunner {
|
||||
if (projectTask instanceof ModuleBuildTask) {
|
||||
return ExternalSystemApiUtil.isExternalSystemAwareModule(GradleConstants.SYSTEM_ID, ((ModuleBuildTask)projectTask).getModule());
|
||||
}
|
||||
if (projectTask instanceof ArtifactBuildTask) {
|
||||
ArtifactBuildTask artifactBuildTask = (ArtifactBuildTask)projectTask;
|
||||
for (GradleArtifactBuildTasksProvider buildTasksProvider : GradleArtifactBuildTasksProvider.EP_NAME.getExtensions()) {
|
||||
if (buildTasksProvider.isApplicable(artifactBuildTask)) return true;
|
||||
if (projectTask instanceof ProjectModelBuildTask) {
|
||||
ProjectModelBuildTask buildTask = (ProjectModelBuildTask)projectTask;
|
||||
if (buildTask.getBuildableElement() instanceof Artifact) {
|
||||
for (GradleArtifactBuildTasksProvider buildTasksProvider : GradleArtifactBuildTasksProvider.EP_NAME.getExtensions()) {
|
||||
if (buildTasksProvider.isApplicable(buildTask)) return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -284,9 +287,9 @@ public class GradleProjectTaskRunner extends ProjectTaskRunner {
|
||||
if (ContainerUtil.isEmpty(tasks)) return;
|
||||
|
||||
for (ProjectTask projectTask : tasks) {
|
||||
if (!(projectTask instanceof ArtifactBuildTask)) continue;
|
||||
if (!(projectTask instanceof ProjectModelBuildTask)) continue;
|
||||
|
||||
ArtifactBuildTask artifactBuildTask = (ArtifactBuildTask)projectTask;
|
||||
ProjectModelBuildTask artifactBuildTask = (ProjectModelBuildTask)projectTask;
|
||||
for (GradleArtifactBuildTasksProvider buildTasksProvider : GradleArtifactBuildTasksProvider.EP_NAME.getExtensions()) {
|
||||
if (buildTasksProvider.isApplicable(artifactBuildTask)) {
|
||||
buildTasksProvider.addArtifactsTargetsBuildTasks(
|
||||
|
||||
@@ -13,9 +13,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
*/
|
||||
public class GradleIdeManager {
|
||||
|
||||
private static final @NotNull NotNullLazyValue<GradleIdeManager> myDefaultLazyValue =
|
||||
NotNullLazyValue.createValue(GradleIdeManager::new);
|
||||
|
||||
private static final @NotNull NotNullLazyValue<GradleIdeManager> myDefaultLazyValue = NotNullLazyValue.createValue(GradleIdeManager::new);
|
||||
|
||||
public static GradleIdeManager getInstance() {
|
||||
GradleIdeManager ideManager = ServiceManager.getService(GradleIdeManager.class);
|
||||
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
/*
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jetbrains.plugins.gradle.execution.build;
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.externalSystem.model.execution.ExternalTaskPojo;
|
||||
import com.intellij.task.ArtifactBuildTask;
|
||||
import com.intellij.util.Consumer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* @author Vladislav.Soroka
|
||||
* @since 7/11/2016
|
||||
*/
|
||||
public interface GradleArtifactBuildTasksProvider {
|
||||
ExtensionPointName<GradleArtifactBuildTasksProvider> EP_NAME =
|
||||
ExtensionPointName.create("org.jetbrains.plugins.gradle.artifactBuildTasksProvider");
|
||||
|
||||
boolean isApplicable(@NotNull ArtifactBuildTask artifactBuildTask);
|
||||
|
||||
void addArtifactsTargetsBuildTasks(@NotNull ArtifactBuildTask artifactBuildTask,
|
||||
@NotNull Consumer<ExternalTaskPojo> cleanTasksConsumer,
|
||||
@NotNull Consumer<ExternalTaskPojo> buildTasksConsumer);
|
||||
}
|
||||
@@ -109,6 +109,8 @@
|
||||
<compiler.buildTargetScopeProvider implementation="com.intellij.packaging.impl.compiler.ArtifactBuildTargetScopeProvider"/>
|
||||
<compiler implementation="com.intellij.packaging.impl.compiler.ArtifactsCompiler" id="artifactsCompiler"/>
|
||||
|
||||
<projectTaskRunner implementation="com.intellij.task.impl.JpsProjectTaskRunner" id="jps" order="last"/>
|
||||
|
||||
<gotoRelatedProvider implementation="com.intellij.testIntegration.GotoTestRelatedProvider"/>
|
||||
|
||||
<applicationService serviceInterface="com.intellij.ide.RecentProjectsManager"
|
||||
|
||||
Reference in New Issue
Block a user