use of org.jetbrains.idea.maven.project.MavenProject in project intellij-community by JetBrains.
the class InvalidProjectImportingTest method testUnresolvedPluginsAsExtensions.
@Bombed(user = "Vladislav.Soroka", year = 2020, month = Calendar.APRIL, day = 1, description = "temporary disabled")
public void testUnresolvedPluginsAsExtensions() throws Exception {
importProject("<groupId>test</groupId>" + "<artifactId>project</artifactId>" + "<version>1</version>" + "<build>" + " <plugins>" + " <plugin>" + " <groupId>xxx</groupId>" + " <artifactId>yyy</artifactId>" + " <version>1</version>" + " <extensions>true</extensions>" + " </plugin>" + " </plugins>" + "</build>");
assertModules("project");
MavenProject root = getRootProjects().get(0);
assertProblems(root, "Unresolved plugin: 'xxx:yyy:1'");
}
use of org.jetbrains.idea.maven.project.MavenProject in project intellij-community by JetBrains.
the class MiscImportingTest method testExceptionsFromMavenExtensionsAreReportedAsProblems.
public void testExceptionsFromMavenExtensionsAreReportedAsProblems() throws Exception {
MavenCustomRepositoryHelper helper = new MavenCustomRepositoryHelper(myDir, "plugins");
setRepositoryPath(helper.getTestDataPath("plugins"));
getMavenGeneralSettings().setWorkOffline(true);
importProjectWithMaven3("<groupId>test</groupId>" + "<artifactId>project</artifactId>" + "<version>1</version>" + "<description>throw!</description>" + "" + "<build>" + " <extensions>" + " <extension>" + " <groupId>intellij.test</groupId>" + " <artifactId>maven-extension</artifactId>" + " <version>1.0</version>" + " </extension>" + " </extensions>" + "</build>");
List<MavenProject> projects = myProjectsTree.getProjects();
assertEquals(1, projects.size());
MavenProject mavenProject = projects.get(0);
assertEquals(mavenProject.getProblems().toString(), 1, mavenProject.getProblems().size());
assertEquals("throw!", mavenProject.getProblems().get(0).getDescription());
}
use of org.jetbrains.idea.maven.project.MavenProject in project intellij-community by JetBrains.
the class MavenBeforeRunTasksProvider method getDescription.
@Override
public String getDescription(MavenBeforeRunTask task) {
MavenProject mavenProject = getMavenProject(task);
if (mavenProject == null) {
return TasksBundle.message("maven.tasks.before.run.empty");
}
String desc = mavenProject.getDisplayName() + ": " + StringUtil.notNullize(task.getGoal()).trim();
return TasksBundle.message("maven.tasks.before.run", desc);
}
use of org.jetbrains.idea.maven.project.MavenProject in project intellij-community by JetBrains.
the class MavenBeforeRunTasksProvider method executeTask.
public boolean executeTask(final DataContext context, RunConfiguration configuration, ExecutionEnvironment env, final MavenBeforeRunTask task) {
final Semaphore targetDone = new Semaphore();
final boolean[] result = new boolean[] { true };
try {
ApplicationManager.getApplication().invokeAndWait(() -> {
final Project project = CommonDataKeys.PROJECT.getData(context);
final MavenProject mavenProject = getMavenProject(task);
if (project == null || project.isDisposed() || mavenProject == null)
return;
FileDocumentManager.getInstance().saveAllDocuments();
final MavenExplicitProfiles explicitProfiles = MavenProjectsManager.getInstance(project).getExplicitProfiles();
final MavenRunner mavenRunner = MavenRunner.getInstance(project);
targetDone.down();
new Task.Backgroundable(project, TasksBundle.message("maven.tasks.executing"), true) {
public void run(@NotNull ProgressIndicator indicator) {
try {
MavenRunnerParameters params = new MavenRunnerParameters(true, mavenProject.getDirectory(), ParametersListUtil.parse(task.getGoal()), explicitProfiles.getEnabledProfiles(), explicitProfiles.getDisabledProfiles());
result[0] = mavenRunner.runBatch(Collections.singletonList(params), null, null, TasksBundle.message("maven.tasks.executing"), indicator);
} finally {
targetDone.up();
}
}
@Override
public boolean shouldStartInBackground() {
return MavenRunner.getInstance(project).getSettings().isRunMavenInBackground();
}
@Override
public void processSentToBackground() {
MavenRunner.getInstance(project).getSettings().setRunMavenInBackground(true);
}
}.queue();
}, ModalityState.NON_MODAL);
} catch (Exception e) {
MavenLog.LOG.error(e);
return false;
}
targetDone.waitFor();
return result[0];
}
use of org.jetbrains.idea.maven.project.MavenProject in project intellij-community by JetBrains.
the class MavenKeymapExtension method createGroup.
@Override
public KeymapGroup createGroup(Condition<AnAction> condition, final Project project) {
KeymapGroup result = KeymapGroupFactory.getInstance().createGroup(TasksBundle.message("maven.tasks.action.group.name"), MavenIcons.MavenLogo);
if (project == null)
return result;
Comparator<MavenProject> projectComparator = (o1, o2) -> o1.getDisplayName().compareToIgnoreCase(o2.getDisplayName());
Map<MavenProject, Set<Pair<String, String>>> projectToActionsMapping = new TreeMap<>(projectComparator);
ActionManager actionManager = ActionManager.getInstance();
//noinspection TestOnlyProblems
for (String eachId : actionManager.getActionIds(getActionPrefix(project, null))) {
AnAction eachAction = actionManager.getAction(eachId);
if (!(eachAction instanceof MavenGoalAction))
continue;
if (condition != null && !condition.value(actionManager.getActionOrStub(eachId)))
continue;
MavenGoalAction mavenAction = (MavenGoalAction) eachAction;
MavenProject mavenProject = mavenAction.getMavenProject();
Set<Pair<String, String>> actions = projectToActionsMapping.get(mavenProject);
if (actions == null) {
final List<String> projectGoals = collectGoals(mavenProject);
actions = new TreeSet<>((o1, o2) -> {
String goal1 = o1.getFirst();
String goal2 = o2.getFirst();
int index1 = projectGoals.indexOf(goal1);
int index2 = projectGoals.indexOf(goal2);
if (index1 == index2)
return goal1.compareToIgnoreCase(goal2);
return (index1 < index2 ? -1 : 1);
});
projectToActionsMapping.put(mavenProject, actions);
}
actions.add(Pair.create(mavenAction.getGoal(), eachId));
}
for (Map.Entry<MavenProject, Set<Pair<String, String>>> each : projectToActionsMapping.entrySet()) {
Set<Pair<String, String>> goalsToActionIds = each.getValue();
for (Pair<String, String> eachGoalToActionId : goalsToActionIds) {
result.addActionId(eachGoalToActionId.getSecond());
}
}
Icon icon = SystemInfoRt.isMac ? AllIcons.ToolbarDecorator.Mac.Add : AllIcons.ToolbarDecorator.Add;
((Group) result).addHyperlink(new Hyperlink(icon, "Choose a phase/goal to assign a shortcut") {
@Override
public void onClick(MouseEvent e) {
SelectMavenGoalDialog dialog = new SelectMavenGoalDialog(project);
if (dialog.showAndGet() && dialog.getResult() != null) {
MavenProjectsStructure.GoalNode goalNode = dialog.getResult();
String goal = goalNode.getGoal();
String actionId = MavenShortcutsManager.getInstance(project).getActionId(goalNode.getProjectPath(), goal);
getOrRegisterAction(goalNode.getMavenProject(), actionId, goal);
ApplicationManager.getApplication().getMessageBus().syncPublisher(KeymapListener.CHANGE_TOPIC).processCurrentKeymapChanged();
Settings allSettings = Settings.KEY.getData(DataManager.getInstance().getDataContext(e.getComponent()));
KeymapPanel keymapPanel = allSettings != null ? allSettings.find(KeymapPanel.class) : null;
if (keymapPanel != null) {
// clear actions filter
keymapPanel.showOption("");
keymapPanel.selectAction(actionId);
}
}
}
});
return result;
}
Aggregations