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

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

Introduction

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

Prototype

public MavenProject getParent() 

Source Link

Document

Returns the project corresponding to a declared parent.

Usage

From source file:se.jiderhamn.promote.maven.plugin.PromoteArtifactsMojo.java

License:Apache License

/** Read release descriptor to find the release version of the given artifact */
private String getReleasedVersion(MavenProject project, Artifact artifact) throws MojoExecutionException {
    if (project == null || project.getBasedir() == null)
        throw new MojoExecutionException("Basedir must be provided for project " + project);

    final String key = ArtifactUtils.versionlessKey(artifact);
    try {//from   w ww.j  a v  a  2s .c om
        PropertiesReleaseDescriptorStore descriptorStore = new PropertiesReleaseDescriptorStore();
        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
        releaseDescriptor.setWorkingDirectory(project.getBasedir().getAbsolutePath());
        releaseDescriptor = descriptorStore.read(releaseDescriptor);

        // "groupId:artifactId" -> version
        final Map<String, String> releaseVersions = releaseDescriptor.getReleaseVersions();
        getLog().debug("Read versions from " + project.getBasedir() + ": " + releaseVersions);

        if (releaseVersions.containsKey(key))
            return releaseVersions.get(key);
    } catch (ReleaseDescriptorStoreException e) {
        throw new MojoExecutionException("Error parsing release descriptor", e);
    } catch (NullPointerException e) { // No release.properties found
        getLog().debug("Error finding release descriptor", e);
    }

    if (project.hasParent() && project.getParent().getBasedir() != null) {
        getLog().debug("No version for " + key + " found in " + project + "; looking in parent ");
        return getReleasedVersion(project.getParent(), artifact);
    } else
        return null;
}