public static void runOrApplyMavenProjectFileTemplate( Project project, VirtualFile file, @NotNull MavenId projectId, MavenId parentId, VirtualFile parentFile, boolean interactive) throws IOException { Properties properties = new Properties(); Properties conditions = new Properties(); properties.setProperty("GROUP_ID", projectId.getGroupId()); properties.setProperty("ARTIFACT_ID", projectId.getArtifactId()); properties.setProperty("VERSION", projectId.getVersion()); if (parentId != null) { conditions.setProperty("HAS_PARENT", "true"); properties.setProperty("PARENT_GROUP_ID", parentId.getGroupId()); properties.setProperty("PARENT_ARTIFACT_ID", parentId.getArtifactId()); properties.setProperty("PARENT_VERSION", parentId.getVersion()); if (parentFile != null) { VirtualFile modulePath = file.getParent(); VirtualFile parentModulePath = parentFile.getParent(); if (!Comparing.equal(modulePath.getParent(), parentModulePath)) { String relativePath = VfsUtil.getPath(file, parentModulePath, '/'); if (relativePath != null) { if (relativePath.endsWith("/")) relativePath = relativePath.substring(0, relativePath.length() - 1); conditions.setProperty("HAS_RELATIVE_PATH", "true"); properties.setProperty("PARENT_RELATIVE_PATH", relativePath); } } } } runOrApplyFileTemplate( project, file, MavenFileTemplateGroupFactory.MAVEN_PROJECT_XML_TEMPLATE, properties, conditions, interactive); }
@NotNull public static MavenDomDependency createDomDependency( MavenDomDependencies dependencies, @Nullable Editor editor, @NotNull final MavenId id) { MavenDomDependency dep = createDomDependency(dependencies, editor); dep.getGroupId().setStringValue(id.getGroupId()); dep.getArtifactId().setStringValue(id.getArtifactId()); dep.getVersion().setStringValue(id.getVersion()); return dep; }
public static MavenDomParent updateMavenParent( MavenDomProjectModel mavenModel, MavenProject parentProject) { MavenDomParent result = mavenModel.getMavenParent(); VirtualFile pomFile = DomUtil.getFile(mavenModel).getVirtualFile(); Project project = mavenModel.getXmlElement().getProject(); MavenId parentId = parentProject.getMavenId(); result.getGroupId().setStringValue(parentId.getGroupId()); result.getArtifactId().setStringValue(parentId.getArtifactId()); result.getVersion().setStringValue(parentId.getVersion()); if (!Comparing.equal(pomFile.getParent().getParent(), parentProject.getDirectoryFile())) { result .getRelativePath() .setValue(PsiManager.getInstance(project).findFile(parentProject.getFile())); } return result; }