@Command("remove-parent") public void removeParent(final PipeOut out) { MavenCoreFacet mvn = project.getFacet(MavenCoreFacet.class); Model pom = mvn.getPOM(); Parent parent = pom.getParent(); if (parent != null) { String parentId = parent.getGroupId() + ":" + parent.getArtifactId() + ":" + parent.getVersion() + " (" + (parent.getRelativePath() == null ? " " : parent.getRelativePath() + ")"); if (shell.promptBoolean( "Are you sure you want to remove all parent information from this project? [ " + parentId + "]", false)) { out.println("Removed parent [ " + parentId + " ]"); pom.setParent(null); mvn.setPOM(pom); } else { out.println("Aborted..."); } } else { out.println("Nothing to remove..."); } }
@Command("set-parent") public void setParent( @Option( name = "parentId", description = "dependency identifier of parent, ex: \"org.jboss.forge:forge-parent:1.0.0\"", required = false) final Dependency gav, @Option( name = "parentRelativePath", description = "relative location from the current project to the parent project root folder", type = PromptType.FILE_PATH, required = false) final String relativePath, @Option( name = "parentProjectRoot", description = "absolute location of a project to use as this project's direct parent", required = false) final Resource<?> path, final PipeOut out) { MavenCoreFacet mvn = project.getFacet(MavenCoreFacet.class); Parent parent = null; if (gav != null) { Assert.notNull( gav.getArtifactId(), "ArtifactId must not be null [" + gav.toCoordinates() + "]"); Assert.notNull(gav.getGroupId(), "GroupId must not be null [" + gav.toCoordinates() + "]"); Assert.notNull(gav.getVersion(), "Version must not be null [" + gav.toCoordinates() + "]"); parent = new Parent(); parent.setArtifactId(gav.getArtifactId()); parent.setGroupId(gav.getGroupId()); parent.setVersion(gav.getVersion()); if (relativePath != null) { parent.setRelativePath(relativePath); } Model pom = mvn.getPOM(); pom.setParent(parent); mvn.setPOM(pom); } else if ((path != null) && factory.containsProject(path.reify(DirectoryResource.class))) { Project parentProject = factory.findProject(path.reify(DirectoryResource.class)); MavenCoreFacet parentCore = parentProject.getFacet(MavenCoreFacet.class); parent = new Parent(); parent.setArtifactId(parentCore.getMavenProject().getArtifactId()); parent.setGroupId(parentCore.getMavenProject().getGroupId()); parent.setVersion(parentCore.getMavenProject().getVersion()); if (relativePath != null) { parent.setRelativePath(relativePath); } Model pom = mvn.getPOM(); pom.setParent(parent); mvn.setPOM(pom); } else if (relativePath != null) { PathspecParser parser = new PathspecParser(resources, shell.getCurrentProject().getProjectRoot(), relativePath); List<Resource<?>> resolvedResources = parser.resolve(); if (!resolvedResources.isEmpty() && factory.containsProject(resolvedResources.get(0).reify(DirectoryResource.class))) { Project parentProject = factory.findProject(resolvedResources.get(0).reify(DirectoryResource.class)); MavenCoreFacet parentCore = parentProject.getFacet(MavenCoreFacet.class); parent = new Parent(); parent.setArtifactId(parentCore.getMavenProject().getArtifactId()); parent.setGroupId(parentCore.getMavenProject().getGroupId()); parent.setVersion(parentCore.getMavenProject().getVersion()); parent.setRelativePath(relativePath); Model pom = mvn.getPOM(); pom.setParent(parent); mvn.setPOM(pom); } else { out.print(ShellColor.RED, "***ERROR***"); out.println(" relative path did not resolve to a Project [" + relativePath + "]"); } } else { out.print(ShellColor.RED, "***ERROR***"); out.println(" you must specify a path to or dependency id of the parent project."); } if (parent != null) { String parentId = parent.getGroupId() + ":" + parent.getArtifactId() + ":" + parent.getVersion() + " (" + (parent.getRelativePath() == null ? " " : parent.getRelativePath() + ")"); out.println("Set parent [ " + parentId + " ]"); } }
public Model toMavenModel() { Model model = new Model(); model.setBuild(new Build()); model.setDescription(description); model.setUrl(url); model.setName(projectId.getArtifact()); model.setGroupId(projectId.getGroup()); model.setVersion(projectId.getVersion()); model.setArtifactId(projectId.getArtifact()); model.setModelVersion("4.0.0"); // parent if (parent != null) { model.setParent(parent); } model.setPackaging(packaging); if (properties != null) { Properties modelProperties = new Properties(); for (Property p : properties) { modelProperties.setProperty(p.getKey(), p.getValue()); } model.setProperties(modelProperties); } // Add jar repository urls. if (null != repositories) { for (String repoUrl : repositories.getRepositories()) { Repository repository = new Repository(); repository.setId(Integer.toString(repoUrl.hashCode())); repository.setUrl(repoUrl); model.addRepository(repository); } } // Add dependency management if (overrides != null) { DependencyManagement depMan = new DependencyManagement(); for (Id dep : overrides) { Dependency dependency = new Dependency(); dependency.setGroupId(dep.getGroup()); dependency.setArtifactId(dep.getArtifact()); dependency.setVersion(dep.getVersion()); // JVZ: We need to parse these dependency.setType("jar"); if (null != dep.getClassifier()) { dependency.setClassifier(dep.getClassifier()); } depMan.addDependency(dependency); } model.setDependencyManagement(depMan); } // Add project dependencies. if (deps != null) { for (Id dep : deps) { Dependency dependency = new Dependency(); dependency.setGroupId(dep.getGroup()); dependency.setArtifactId(dep.getArtifact()); dependency.setVersion(dep.getVersion()); // JVZ: We need to parse these dependency.setType("jar"); if (null != dep.getClassifier()) { dependency.setClassifier(dep.getClassifier()); } model.addDependency(dependency); } } if (modules != null) { model.setModules(modules); } if (pluginOverrides != null) { PluginManagement management = new PluginManagement(); management.setPlugins(pluginOverrides); model.getBuild().setPluginManagement(management); } if (plugins != null) { model.getBuild().setPlugins(plugins); } // Optional source dirs customization. if (dirs != null) { Build build = new Build(); String srcDir = dirs.get("src"); String testDir = dirs.get("test"); if (null != srcDir) build.setSourceDirectory(srcDir); if (null != testDir) build.setTestSourceDirectory(testDir); model.setBuild(build); } if (null != scm) { Scm scm = new Scm(); scm.setConnection(this.scm.getConnection()); scm.setDeveloperConnection(this.scm.getDeveloperConnection()); scm.setUrl(this.scm.getUrl()); model.setScm(scm); } return model; }