Example usage for org.apache.maven.project MavenProject getBasedir

List of usage examples for org.apache.maven.project MavenProject getBasedir

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject getBasedir.

Prototype

public File getBasedir() 

Source Link

Usage

From source file:org.ops4j.pax.construct.clone.CloneMojo.java

License:Apache License

/**
 * Create a new archetype for a bundle project, with potentially customized POM and Bnd settings
 * //from w ww .j  a  v  a 2s  . c  o  m
 * @param project Maven project
 * @param namespace Java namespace, may be null
 * @param customizedPom customized Maven project model, may be null
 * @return clause identifying the archetype fragment
 * @throws MojoExecutionException
 */
private String createBundleArchetype(MavenProject project, String namespace, Pom customizedPom)
        throws MojoExecutionException {
    File baseDir = project.getBasedir();

    getLog().info("Cloning bundle project " + project.getArtifactId());
    ArchetypeFragment fragment = new ArchetypeFragment(getFragmentDir(), namespace, false);
    fragment.addPom(baseDir, customizedPom);

    if (null != namespace) {
        fragment.addSources(baseDir, project.getBuild().getSourceDirectory(), false);
        fragment.addSources(baseDir, project.getBuild().getTestSourceDirectory(), true);
    }

    for (Iterator i = project.getTestResources().iterator(); i.hasNext();) {
        Resource r = (Resource) i.next();
        fragment.addResources(baseDir, r.getDirectory(), r.getIncludes(), r.getExcludes(), true);
    }

    List excludes = new ArrayList();
    excludes.addAll(fragment.getIncludedFiles());
    excludes.add("target/");
    excludes.add("runner/");
    excludes.add("pom.xml");

    // consider everything else in the bundle directory to be a resource
    fragment.addResources(baseDir, baseDir.getPath(), null, excludes, false);

    // archetype must use different id
    String groupId = project.getGroupId();
    String artifactId = project.getArtifactId() + "-archetype";
    String version = project.getVersion();

    // archive customized bundle sources, POM and Bnd instructions
    String fragmentId = groupId + ':' + artifactId + ':' + version;
    fragment.createArchive(fragmentId.replace(':', '_'), newJarArchiver());

    return fragmentId;
}

From source file:org.ops4j.pax.construct.clone.CloneMojo.java

License:Apache License

/**
 * Attempt to repair bundle imports by replacing them with pax-import-bundle commands
 * /*from   www .j  a  va 2 s.co  m*/
 * @param script build script
 * @param project Maven project
 * @return customized Maven project model
 */
private Pom repairBundleImports(PaxScript script, MavenProject project) {
    Pom pom;
    try {
        File tempFile = File.createTempFile("pom", ".xml", m_tempdir);
        FileUtils.copyFile(project.getFile(), tempFile);
        pom = PomUtils.readPom(tempFile);
        tempFile.deleteOnExit();
    } catch (IOException e) {
        pom = null;
    }

    for (Iterator i = project.getDependencies().iterator(); i.hasNext();) {
        Dependency dependency = (Dependency) i.next();

        String bundleId = dependency.getGroupId() + ':' + dependency.getArtifactId();
        String bundleName = (String) m_bundleNameMap.get(bundleId);

        // is this a local bundle project?
        if (null != bundleName) {
            PaxCommandBuilder command;

            command = script.call(PaxScript.IMPORT_BUNDLE);
            command.option('a', bundleName);

            // enable overwrite
            command.flag('o');

            // only apply to the importing bundle project
            setTargetDirectory(command, project.getBasedir());

            if (null != pom) {
                pom.removeDependency(dependency);
            }
        }
    }

    try {
        if (null != pom) {
            pom.write();
        }
        return pom;
    } catch (IOException e) {
        return null;
    }
}

From source file:org.ops4j.pax.construct.clone.CloneMojo.java

License:Apache License

/**
 * Archive all the selected resources under a single Maven archetype
 * //w  ww.  j a  v a  2 s.c  o m
 * @param project containing Maven project
 * @return clause identifying the archetype fragment
 * @throws MojoExecutionException
 */
private String createProjectArchetype(MavenProject project) throws MojoExecutionException {
    File baseDir = project.getBasedir();

    getLog().info("Cloning primary project " + project.getArtifactId());
    ArchetypeFragment fragment = new ArchetypeFragment(getFragmentDir(), null, unify);
    fragment.addPom(baseDir, null);

    List excludes = new ArrayList();
    excludes.addAll(getExcludedPaths(project));
    excludes.add("**/target/");
    excludes.add("runner/");
    excludes.add("pom.xml");

    // consider everything else that's not been handled to be a resource
    fragment.addResources(baseDir, baseDir.getPath(), null, excludes, false);

    // archetype must use different id
    String groupId = project.getGroupId();
    String artifactId = project.getArtifactId() + "-archetype";
    String version = project.getVersion();

    // archive all the customized non-bundle POMs and projects
    String fragmentId = groupId + ':' + artifactId + ':' + version;
    fragment.createArchive(fragmentId.replace(':', '_'), newJarArchiver());

    return fragmentId;
}

From source file:org.ops4j.pax.construct.clone.CloneMojo.java

License:Apache License

/**
 * Find which paths in this Maven project have already been collected, and should therefore be excluded
 * /* w  ww .ja  v  a2  s .  co m*/
 * @param project major Maven project
 * @return list of excluded paths
 */
private List getExcludedPaths(MavenProject project) {
    List excludes = new ArrayList();
    File baseDir = project.getBasedir();

    for (Iterator i = m_handledDirs.iterator(); i.hasNext();) {
        File dir = (File) i.next();
        String[] pivot = DirUtils.calculateRelativePath(baseDir, dir);
        if (pivot != null && pivot[0].length() == 0 && pivot[2].length() > 0) {
            excludes.add(pivot[2]);
        }
    }

    return excludes;
}

From source file:org.ops4j.pax.construct.clone.CloneMojo.java

License:Apache License

/**
 * @param project Maven project
 */
private void registerProject(MavenProject project) {
    m_handledDirs.add(project.getBasedir());
}

From source file:org.ops4j.pax.construct.lifecycle.ProvisionMojo.java

License:Apache License

/**
 * Create new POM (based on the root POM) which lists the deployed bundles as dependencies
 * /* ww  w.  ja v a 2  s . c  o  m*/
 * @param bundles list of bundles to be deployed
 * @return deployment project
 * @throws MojoExecutionException
 */
private MavenProject createDeploymentProject(List bundles) throws MojoExecutionException {
    MavenProject deployProject;

    if (null == m_project.getFile()) {
        deployProject = new MavenProject();
        deployProject.setGroupId("examples");
        deployProject.setArtifactId("pax-provision");
        deployProject.setVersion("1.0-SNAPSHOT");
    } else {
        deployProject = new MavenProject(m_project);
    }

    String internalId = PomUtils.getCompoundId(deployProject.getGroupId(), deployProject.getArtifactId());
    deployProject.setGroupId(internalId + ".build");
    deployProject.setArtifactId("deployment");

    // remove unnecessary cruft
    deployProject.setPackaging("pom");
    deployProject.getModel().setModules(null);
    deployProject.getModel().setDependencies(bundles);
    deployProject.getModel().setPluginRepositories(null);
    deployProject.getModel().setReporting(null);
    deployProject.setBuild(null);

    File deployFile = new File(deployProject.getBasedir(), "runner/deploy-pom.xml");

    deployFile.getParentFile().mkdirs();
    deployProject.setFile(deployFile);

    try {
        Writer writer = StreamFactory.newXmlWriter(deployFile);
        deployProject.writeModel(writer);
        IOUtil.close(writer);
    } catch (IOException e) {
        throw new MojoExecutionException("Unable to write deployment POM " + deployFile);
    }

    return deployProject;
}

From source file:org.ops4j.pax.construct.lifecycle.ProvisionMojo.java

License:Apache License

/**
 * Deploy bundles using the 'classic' Pax-Runner
 * //from w w w  . ja v  a2  s  .  c om
 * @param mainClass main Pax-Runner class
 * @param project deployment project
 * @param repositories comma separated list of Maven repositories
 * @throws MojoExecutionException
 */
private void deployRunnerClassic(Class mainClass, MavenProject project, String repositories)
        throws MojoExecutionException {
    String workDir = project.getBasedir() + "/runner";

    String cachedPomName = project.getArtifactId() + '_' + project.getVersion() + ".pom";
    File cachedPomFile = new File(workDir + "/lib/" + cachedPomName);

    // Force reload of pom
    cachedPomFile.delete();

    if (PomUtils.isEmpty(framework)) {
        framework = "felix";
    }

    String[] deployAppCmds = { "--dir=" + workDir, "--no-md5", "--platform=" + framework, "--profile=default",
            "--repository=" + repositories, "--localRepository=" + m_localRepo.getBasedir(),
            project.getGroupId(), project.getArtifactId(), project.getVersion() };

    invokePaxRunner(mainClass, deployAppCmds);
}

From source file:org.owasp.dependencycheck.maven.AggregateMojo.java

License:Apache License

/**
 * Returns a set containing all the descendant projects of the given
 * project.//  ww w. j a  va  2 s  .c  om
 *
 * @param project the project for which all descendants will be returned
 * @return the set of descendant projects
 */
protected Set<MavenProject> getDescendants(MavenProject project) {
    if (project == null) {
        return Collections.emptySet();
    }
    final Set<MavenProject> descendants = new HashSet<>();
    int size;
    if (getLog().isDebugEnabled()) {
        getLog().debug(String.format("Collecting descendants of %s", project.getName()));
    }
    for (String m : project.getModules()) {
        for (MavenProject mod : getReactorProjects()) {
            try {
                File mpp = new File(project.getBasedir(), m);
                mpp = mpp.getCanonicalFile();
                if (mpp.compareTo(mod.getBasedir()) == 0 && descendants.add(mod) && getLog().isDebugEnabled()) {
                    getLog().debug(String.format("Descendant module %s added", mod.getName()));

                }
            } catch (IOException ex) {
                if (getLog().isDebugEnabled()) {
                    getLog().debug("Unable to determine module path", ex);
                }
            }
        }
    }
    do {
        size = descendants.size();
        for (MavenProject p : getReactorProjects()) {
            if (project.equals(p.getParent()) || descendants.contains(p.getParent())) {
                if (descendants.add(p) && getLog().isDebugEnabled()) {
                    getLog().debug(String.format("Descendant %s added", p.getName()));

                }
                for (MavenProject modTest : getReactorProjects()) {
                    if (p.getModules() != null && p.getModules().contains(modTest.getName())
                            && descendants.add(modTest) && getLog().isDebugEnabled()) {
                        getLog().debug(String.format("Descendant %s added", modTest.getName()));
                    }
                }
            }
            final Set<MavenProject> addedDescendants = new HashSet<>();
            for (MavenProject dec : descendants) {
                for (String mod : dec.getModules()) {
                    try {
                        File mpp = new File(dec.getBasedir(), mod);
                        mpp = mpp.getCanonicalFile();
                        if (mpp.compareTo(p.getBasedir()) == 0) {
                            addedDescendants.add(p);
                        }
                    } catch (IOException ex) {
                        if (getLog().isDebugEnabled()) {
                            getLog().debug("Unable to determine module path", ex);
                        }
                    }
                }
            }
            for (MavenProject addedDescendant : addedDescendants) {
                if (descendants.add(addedDescendant) && getLog().isDebugEnabled()) {
                    getLog().debug(String.format("Descendant module %s added", addedDescendant.getName()));
                }
            }
        }
    } while (size != 0 && size != descendants.size());
    if (getLog().isDebugEnabled()) {
        getLog().debug(String.format("%s has %d children", project, descendants.size()));
    }
    return descendants;
}

From source file:org.phpmaven.sitemap.SitemapIndexMojo.java

License:Apache License

private void parseProject(final List<String> urls, final MavenProject project) throws ProjectBuildingException {
    for (final Plugin plugin : project.getBuild().getPlugins()) {
        if (plugin.getArtifactId().equals("sitemap-plugin")
                && plugin.getGroupId().equals("org.phpmaven.sites")) {
            urls.add(project.getUrl());//from  w  ww .j a  v a 2s. c o m
        }
    }

    for (final String module : project.getModules()) {
        final File moduleFolder = new File(project.getBasedir(), module);
        final File pomFile = new File(moduleFolder, "pom.xml");
        if (pomFile.exists()) {
            this.parseProject(urls, this.getProjectFromPom(pomFile));
        }
    }
}

From source file:org.sculptor.maven.plugin.AbstractGeneratorMojoTestCase.java

License:Apache License

/**
 * Returns Mojo instance for the given goal. The Mojo instance is
 * initialized with a {@link MavenProject} created from the test projects in
 * <code>"src/test/projects/"</code> by given project name.
 *//*from ww  w.  j  a  v a 2 s .  c o m*/
protected T createMojo(MavenProject project, String goal) throws Exception {
    T mojo = super.createMojo(project, goal);

    // Set default values on mojo
    setVariableValueToObject(mojo, "outletSrcOnceDir", new File(project.getBasedir(), "src/main/java"));
    setVariableValueToObject(mojo, "outletResOnceDir", new File(project.getBasedir(), "src/main/resources"));
    setVariableValueToObject(mojo, "outletSrcDir", new File(project.getBasedir(), "src/generated/java"));
    setVariableValueToObject(mojo, "outletResDir", new File(project.getBasedir(), "src/generated/resources"));
    setVariableValueToObject(mojo, "outletWebrootDir", new File(project.getBasedir(), "src/main/webapp"));
    setVariableValueToObject(mojo, "outletSrcTestOnceDir", new File(project.getBasedir(), "src/test/java"));
    setVariableValueToObject(mojo, "outletResTestOnceDir",
            new File(project.getBasedir(), "src/test/resources"));
    setVariableValueToObject(mojo, "outletSrcTestDir",
            new File(project.getBasedir(), "src/test/generated/java"));
    setVariableValueToObject(mojo, "outletResTestDir",
            new File(project.getBasedir(), "src/test/generated/resources"));
    setVariableValueToObject(mojo, "outletDocDir", new File(project.getBasedir(), "src/site"));
    setVariableValueToObject(mojo, "statusFile", new File(project.getBasedir(), ".sculptor-status"));
    return mojo;
}