List of usage examples for org.apache.maven.project MavenProject getBasedir
public File getBasedir()
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; }