Java源码示例:org.eclipse.m2e.core.project.IMavenProjectFacade

示例1
@Override
public boolean isRejected(IFolder folder) {
	IMavenProjectFacade mavenProjectFacade = MavenPlugin.getMavenProjectRegistry().getProject(folder.getProject());
	if (mavenProjectFacade == null) {
		return false;
	}
	IPath outputLocation = mavenProjectFacade.getOutputLocation();
	if (outputLocation == null) {
		return false;
	} else if (folder.getFullPath().equals(outputLocation)) {
		return true;
	}
	IPath testOutputLocation = mavenProjectFacade.getTestOutputLocation();
	if (testOutputLocation == null) {
		return false;
	} else if (folder.getFullPath().equals(testOutputLocation)) {
		return true;
	}
	return false;
}
 
示例2
public void collectProjects(Collection<IProject> projects, IProject project, IProgressMonitor monitor) {
	if (!project.isOpen() || !ProjectUtils.isMavenProject(project)) {
		return;
	}
	projects.add(project);
	IMavenProjectFacade projectFacade = registry.create(project, monitor);
	if (projectFacade != null && "pom".equals(projectFacade.getPackaging())) {
		List<String> modules = projectFacade.getMavenProjectModules();
		for (String module : modules) {
			IPath pomPath = ResourcesPlugin.getWorkspace().getRoot().getFullPath().append(module).append("pom.xml");
			IFile pom = ResourcesPlugin.getWorkspace().getRoot().getFile(pomPath);
			if (pom.exists()) {
				IProject p = pom.getProject();
				if (p.isOpen()) {
					collectProjects(projects, p, monitor);
				}
			}
		}
	}
}
 
示例3
@Override
public AbstractBuildParticipant getBuildParticipant(final IMavenProjectFacade projectFacade, MojoExecution execution,
    final IPluginExecutionMetadata executionMetadata) {
  Activator.log("MavenProjectConfigurator.getBuildParticipant for Maven invoked");

  // Run the execution generate-module for maven2 plugin
  // Don't run on war for gwt maven plugin1
  MojoExecutionBuildParticipant build = null;
  MavenProject mavenProject = projectFacade.getMavenProject();
  if (mavenProject != null && isGwtMavenPlugin2(mavenProject)) {
    Activator.log("MavenProjectConfigurator.getBuildParticipant adding build participant for generate-module.");
    build = new MojoExecutionBuildParticipant(execution, true, true);
  }

  return build;
}
 
示例4
private static IPath getFinalArtifactPath(IProject project) throws CoreException {
  IMavenProjectRegistry projectManager = MavenPlugin.getMavenProjectRegistry();
  IMavenProjectFacade projectFacade = projectManager.create(project, new NullProgressMonitor());
  MavenProject mavenProject = projectFacade.getMavenProject(new NullProgressMonitor());

  String buildDirectory = mavenProject.getBuild().getDirectory();
  String finalName = mavenProject.getBuild().getFinalName();
  String finalArtifactPath = buildDirectory + "/" + finalName + "." + mavenProject.getPackaging();
  return new Path(finalArtifactPath);
}
 
示例5
public DataflowMavenModel fromProject(IProject project) throws CoreException {
  Preconditions.checkNotNull(project);
  if (!DataflowJavaProjectNature.hasDataflowNature(project)) {
    String errorMessage = String.format(
        "Tried to create the Dataflow dependency of a non-Dataflow project %s",
        project.getName());
    DataflowCorePlugin.logWarning(errorMessage);
    throw new IllegalArgumentException(errorMessage);
  }
  IMavenProjectFacade facade = projectRegistry.getProject(project);
  IFile pomFile = facade.getPom();
  return fromIFile(pomFile);
}
 
示例6
private Model getModelFromProject(IProject project) {
  IMavenProjectFacade facade = mavenProjectRegistry.getProject(project);
  if (facade != null) {
    IFile pom = facade.getPom();
    try {
      return maven.readModel(pom.getContents());
    } catch (CoreException e) {
      return null;
    }
  }
  return null;
}
 
示例7
private static List<IJavaProject> getPossibleAdditions0(final ISourceLookupDirector director) {
  final List<IProject> mavenProjects = new ArrayList<IProject>();
  for (final IMavenProjectFacade mavenProject : MavenPlugin.getMavenProjectRegistry().getProjects()) {
    mavenProjects.add(mavenProject.getProject());
  }

  final List<IJavaProject> javaProjects = new ArrayList<IJavaProject>();
  final IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
  try {
    for (final IJavaProject javaProject : JavaCore.create(root).getJavaProjects()) {
      if (mavenProjects.contains(javaProject.getProject())) {
        javaProjects.add(javaProject);
      }
    }
  } catch (final JavaModelException e) {
    final IStatus status = new Status(IStatus.ERROR, SourceLookupPlugin.getInstance().getBundle().getSymbolicName(),
        "Can't retrieve Java projects.", e);
    SourceLookupPlugin.getInstance().getLog().log(status);
  }

  for (final ISourceContainer container : director.getSourceContainers()) {
    if (container.getType().getId().equals(MyMvnSourceContainerTypeDelegate.TYPE_ID)) {
      javaProjects.remove(((MyMvnSourceContainer) container).getJavaProject());
    }
  }

  return javaProjects;
}
 
示例8
@Override
public AbstractBuildParticipant getBuildParticipant(IMavenProjectFacade projectFacade, MojoExecution execution,
    IPluginExecutionMetadata executionMetadata) {
  GwtMavenPlugin.logInfo("WtpMavenProjectConfigurator.getBuildParticipant invoked");

  return super.getBuildParticipant(projectFacade, execution, executionMetadata);
}
 
示例9
/**
 * Not applicable, it will always use version 1.
 */
@Override
public IProjectFacetVersion findFacetVersion(IMavenProjectFacade arg0, Map<?, ?> arg1, IProgressMonitor arg2)
    throws CoreException {

  return null;
}
 
示例10
@Override
public ProjectSREProvider getProjectSREProvider(IProject project) {
	try {
		if (project.hasNature(IMavenConstants.NATURE_ID)
				&& project.hasNature(JavaCore.NATURE_ID)
				&& project.hasNature(SARLEclipseConfig.NATURE_ID)) {
			final IMavenProjectFacade facade = MavenPluginActivator.getDefault()
					.getMavenProjectManager().getProject(project);
			if (facade == null) {
				return null;
			}
			final IJavaProject javaProject = JavaCore.create(project);
			final IClasspathEntry[] classpath = javaProject.getResolvedClasspath(true);
			if (classpath == null) {
				return null;
			}
			for (final IClasspathEntry dep : classpath) {
				final IPath depPath = dep.getPath();
				if (SARLRuntime.isPackedSRE(depPath)) {
					return new MavenProjectSREProvider(
							facade.getArtifactKey().toString()
							+ ":" + depPath.lastSegment(), //$NON-NLS-1$
							depPath);
				}
			}
		}
	} catch (CoreException e) {
		SARLMavenEclipsePlugin.getDefault().log(e);
	}
	return null;
}
 
示例11
/** Invoked to add the preferences dedicated to SARL, JRE, etc.
 *
 * @param facade the Maven face.
 * @param config the configuration.
 * @param addTestFolders indicates if the test folders should be considered.
 * @param monitor the monitor.
 * @throws CoreException if cannot add the source folders.
 */
@SuppressWarnings("static-method")
protected void addPreferences(
		IMavenProjectFacade facade, SARLConfiguration config,
		boolean addTestFolders, IProgressMonitor monitor) throws CoreException {
	final IPath outputPath = makeProjectRelativePath(facade, config.getOutput());
	final IPath testOutputPath = addTestFolders ? makeProjectRelativePath(facade, config.getTestOutput()) : null;
	// Set the SARL preferences
	SARLPreferences.setSpecificSARLConfigurationFor(
			facade.getProject(),
			outputPath,
			testOutputPath);
}
 
示例12
private static IPath makeFullPath(IMavenProjectFacade facade, File file) {
	assert file != null;
	final IProject project = facade.getProject();
	final IPath path;
	if (!file.isAbsolute()) {
		path =  Path.fromOSString(file.getPath());
	} else {
		path = MavenProjectUtils.getProjectRelativePath(project, file.getAbsolutePath());
	}
	return project.getFullPath().append(path);
}
 
示例13
private static IPath makeProjectRelativePath(IMavenProjectFacade facade, File file) {
	assert file != null;
	final IProject project = facade.getProject();
	if (!file.isAbsolute()) {
		return Path.fromOSString(file.getPath());
	}
	return MavenProjectUtils.getProjectRelativePath(project, file.getAbsolutePath());
}
 
示例14
private static IFolder ensureFolderExists(IMavenProjectFacade facade, IPath path, boolean derived,
		IProgressMonitor monitor) throws CoreException {
	final IFolder folder = facade.getProject().getFolder(path.makeRelativeTo(facade.getProject().getFullPath()));
	assert folder != null;
	if (!folder.exists()) {
		M2EUtils.createFolder(folder, derived || folder.isDerived(), monitor);
	}
	return folder;
}
 
示例15
private static void forceMavenCompilerConfiguration(IMavenProjectFacade facade, SARLConfiguration config) {
	final Properties props = facade.getMavenProject().getProperties();
	setVersion(props, "maven.compiler.source", config.getInputCompliance(), //$NON-NLS-1$
			SARLVersion.MINIMAL_JDK_VERSION_FOR_SARL_COMPILATION_ENVIRONMENT,
			SARLVersion.INCOMPATIBLE_JDK_VERSION_FOR_SARL_COMPILATION_ENVIRONMENT);
	setVersion(props, "maven.compiler.target", config.getOutputCompliance(), //$NON-NLS-1$
			SARLVersion.MINIMAL_JDK_VERSION_FOR_SARL_COMPILATION_ENVIRONMENT,
			SARLVersion.INCOMPATIBLE_JDK_VERSION_FOR_SARL_COMPILATION_ENVIRONMENT);
	final String encoding = config.getEncoding();
	if (encoding != null && !encoding.isEmpty()) {
		props.setProperty("maven.compiler.encoding", encoding); //$NON-NLS-1$
	}
}
 
示例16
@Override
@SuppressWarnings("checkstyle:magicnumber")
public void configure(ProjectConfigurationRequest request,
		IProgressMonitor monitor) throws CoreException {
	final IMavenProjectFacade facade = request.getMavenProjectFacade();

	// --- ECLIPSE PLUGIN ---------------------------------------------------------------
	// Special case of tycho plugins, for which the {@link #configureRawClasspath}
	// and {@link #configureClasspath} were not invoked.
	// ----------------------------------------------------------------------------------
	final boolean isEclipsePlugin = isEclipsePluginPackaging(facade);

	final SubMonitor subMonitor;
	subMonitor = SubMonitor.convert(monitor, 3);

	final IProject project = request.getProject();

	final SARLConfiguration config = readConfiguration(request, subMonitor.newChild(1));
	subMonitor.worked(1);
	forceMavenCompilerConfiguration(facade, config);
	subMonitor.worked(1);

	// --- ECLIPSE PLUGIN ---------------------------------------------------------------
	if (isEclipsePlugin) {
		// In the case of Eclipse bundle, the face to the Java project must be created by hand.
		final IJavaProject javaProject = JavaCore.create(project);
		final IClasspathDescriptor classpath = new ClasspathDescriptor(javaProject);
		configureSarlProject(facade, config, classpath, false, subMonitor.newChild(1));
		subMonitor.worked(1);
	}
	// ----------------------------------------------------------------------------------

	io.sarl.eclipse.natures.SARLProjectConfigurator.addSarlNatures(
			project,
			subMonitor.newChild(1));
	subMonitor.worked(1);
}
 
示例17
private void configureSarlProject(IMavenProjectFacade facade, SARLConfiguration config,
		IClasspathDescriptor classpath, boolean addTestFolders, IProgressMonitor monitor) throws CoreException {
	final SubMonitor subm = SubMonitor.convert(monitor, 2);
	addSourceFolders(facade, config, classpath, addTestFolders, subm.newChild(1));
	subm.worked(1);
	addPreferences(facade, config, addTestFolders, subm.newChild(1));
	subm.worked(1);
}
 
示例18
@Override
public void configureRawClasspath(ProjectConfigurationRequest request,
		IClasspathDescriptor classpath, IProgressMonitor monitor)
				throws CoreException {
	final SubMonitor subm = SubMonitor.convert(monitor, 4);
	final IMavenProjectFacade facade = request.getMavenProjectFacade();
	final SARLConfiguration config = readConfiguration(request, subm.newChild(1));
	subm.worked(1);
	removeSarlLibraries(classpath);
	subm.worked(2);
	configureSarlProject(facade, config, classpath, true, subm);
}
 
示例19
@Override
public void configureClasspath(IMavenProjectFacade facade,
		IClasspathDescriptor classpath, IProgressMonitor monitor)
				throws CoreException {
	//
}
 
示例20
@Override
public AbstractBuildParticipant getBuildParticipant(
		IMavenProjectFacade projectFacade, MojoExecution execution,
		IPluginExecutionMetadata executionMetadata) {
	return new BuildParticipant(isEclipsePluginPackaging(projectFacade));
}
 
示例21
/** Replies if the given project facade is pointing an Eclipe plugin.
 *
 * @param facade the maven project facade.
 * @return {@code true} if the facade is for an Eclipse plugin.
 * @since 0.11
 */
public boolean isEclipsePluginPackaging(IMavenProjectFacade facade) {
	return ECLIPSE_PLUGIN_PACKAGING.equalsIgnoreCase(facade.getPackaging());
}