Example usage for org.apache.maven.artifact Artifact getBaseVersion

List of usage examples for org.apache.maven.artifact Artifact getBaseVersion

Introduction

In this page you can find the example usage for org.apache.maven.artifact Artifact getBaseVersion.

Prototype

String getBaseVersion();

Source Link

Usage

From source file:at.yawk.mdep.GenerateMojo.java

@Nullable
@SneakyThrows({ MalformedURLException.class, NoSuchAlgorithmException.class })
@VisibleForTesting// w  ww  . ja va 2 s  . c om
Dependency findArtifactInRepository(Artifact artifact, ArtifactRepository repository)
        throws MojoExecutionException {

    String artifactPath = getArtifactPath(artifact, artifact.getVersion());
    if (artifact.isSnapshot()) {
        ArtifactRepositoryMetadata metadata = new ArtifactRepositoryMetadata(artifact) {
            // maven is weird - i have yet to find a better solution.

            @Override
            public boolean storedInArtifactVersionDirectory() {
                return true;
            }

            @Override
            public String getBaseVersion() {
                return artifact.getBaseVersion();
            }
        };

        // try to load maven-metadata.xml in case we need to use a different version for snapshots
        URL metaUrl = new URL(repository.getUrl() + '/' + repository.pathOfRemoteRepositoryMetadata(metadata));

        Metadata loadedMetadata;
        try (InputStream input = openStream(metaUrl)) {
            loadedMetadata = new MetadataXpp3Reader().read(input, true);
        } catch (IOException e) {
            // could not find metadata
            loadedMetadata = null;
        } catch (XmlPullParserException e) {
            throw new MojoExecutionException("Failed to parse metadata", e);
        }

        if (loadedMetadata != null) {
            Snapshot snapshot = loadedMetadata.getVersioning().getSnapshot();

            String versionWithoutSuffix = artifact.getVersion().substring(0,
                    artifact.getBaseVersion().lastIndexOf('-'));
            artifactPath = getArtifactPath(artifact,
                    versionWithoutSuffix + '-' + snapshot.getTimestamp() + '-' + snapshot.getBuildNumber());
        }
    }

    URL url = new URL(repository.getUrl() + '/' + artifactPath);
    try (InputStream input = openStream(url)) {
        getLog().info("Getting checksum for " + artifact);

        MessageDigest digest = MessageDigest.getInstance("SHA-512");
        byte[] buf = new byte[4096];
        int len;
        while ((len = input.read(buf)) >= 0) {
            digest.update(buf, 0, len);
        }

        Dependency dependency = new Dependency();
        dependency.setUrl(url);
        dependency.setSha512sum(digest.digest());
        return dependency;
    } catch (IOException ignored) {
        // not in this repo
        return null;
    }
}

From source file:at.yawk.mdep.GenerateMojo.java

private static String getArtifactPath(Artifact artifact, String version) {
    StringBuilder builder = new StringBuilder().append(artifact.getGroupId().replace('.', '/')).append('/')
            .append(artifact.getArtifactId()).append('/').append(artifact.getBaseVersion()).append('/')
            .append(artifact.getArtifactId()).append('-').append(version);
    if (artifact.getArtifactHandler().getClassifier() != null) {
        builder.append('-').append(artifact.getArtifactHandler().getClassifier());
    }/* www .  j  a  v  a 2  s  .  c  om*/
    String extension = artifact.getArtifactHandler().getExtension();
    if (extension == null) {
        extension = "jar";
    }
    return builder.append('.').append(extension).toString();
}

From source file:br.com.uggeri.maven.builder.mojo.ArtifactUtil.java

public final static String artifactName(Artifact artifact) {
    StringBuilder sb = new StringBuilder();
    sb.append(artifact.getArtifactId()).append('-');
    if (artifact.getVersion().isEmpty()) {
        sb.append(artifact.getBaseVersion());
    } else {//from   ww w. jav  a 2s  .  co  m
        sb.append(artifact.getVersion());
    }
    if (artifact.hasClassifier()) {
        sb.append('-').append(artifact.getClassifier());
    }
    sb.append('.').append(artifact.getType());
    return sb.toString();
}

From source file:br.com.uggeri.maven.builder.mojo.ArtifactUtil.java

public final static String artifactPomName(Artifact artifact) {
    StringBuilder sb = new StringBuilder();
    sb.append(artifact.getArtifactId()).append('-');
    if (artifact.getVersion().isEmpty()) {
        sb.append(artifact.getBaseVersion());
    } else {/*from   www  .j a  v  a2s . c  o m*/
        sb.append(artifact.getVersion());
    }
    if (artifact.hasClassifier()) {
        sb.append('-').append(artifact.getClassifier());
    }
    sb.append(".pom");
    return sb.toString();
}

From source file:ch.sourcepond.maven.plugin.repobuilder.TargetPathFactory.java

License:Apache License

/**
 * @param pArtifact/*from   ww  w.  ja v  a2s  .co m*/
 * @return
 */
private String toArtifactFileName(final Artifact pArtifact) {
    final StringBuilder b = new StringBuilder(pArtifact.getArtifactId()).append("-")
            .append(pArtifact.getBaseVersion());
    if (!isBlank(pArtifact.getClassifier())) {
        b.append("-").append(pArtifact.getClassifier());
    }

    return b.append(".").append(pArtifact.getArtifactHandler().getExtension()).toString();
}

From source file:ch.sourcepond.maven.plugin.repobuilder.TargetPathFactory.java

License:Apache License

/**
 * @param pRepository//from w ww.java  2s .  c  om
 * @param pArtifact
 * @return
 */
public Path createTargetPath(final Path pRepository, final Artifact pArtifact) {
    return createGroupFolders(pRepository, pArtifact.getGroupId()).resolve(pArtifact.getArtifactId())
            .resolve(pArtifact.getBaseVersion()).resolve(toArtifactFileName(pArtifact));
}

From source file:com.actility.maven.plugin.cocoon.DependencyUtil.java

License:Apache License

/**
 * Formats the outputDirectory based on type.
 *
 * @param useSubdirsPerType if a new sub directory should be used for each type.
 * @param useSubdirPerArtifact if a new sub directory should be used for each artifact.
 * @param useRepositoryLayout if dependencies must be moved into a Maven repository layout, if set, other settings will be
 *            ignored.//from   ww w.  ja  v a2  s  .  c  o  m
 * @param removeVersion if the version must not be mentioned in the filename
 * @param outputDirectory base outputDirectory.
 * @param artifact information about the artifact.
 * @return a formatted File object to use for output.
 */
public static File getFormattedOutputDirectory(boolean useSubdirsPerScope, boolean useSubdirsPerType,
        boolean useSubdirPerArtifact, boolean useRepositoryLayout, boolean removeVersion, File outputDirectory,
        Artifact artifact) {
    StringBuffer sb = new StringBuffer(128);
    if (useRepositoryLayout) {
        // group id
        sb.append(artifact.getGroupId().replace('.', File.separatorChar)).append(File.separatorChar);
        // artifact id
        sb.append(artifact.getArtifactId()).append(File.separatorChar);
        // version
        sb.append(artifact.getBaseVersion()).append(File.separatorChar);
    } else {
        if (useSubdirsPerScope) {
            sb.append(artifact.getScope()).append(File.separatorChar);
        }
        if (useSubdirsPerType) {
            sb.append(artifact.getType()).append("s").append(File.separatorChar);
        }
        if (useSubdirPerArtifact) {
            String artifactString = getDependencyId(artifact, removeVersion);
            sb.append(artifactString).append(File.separatorChar);
        }
    }
    return new File(outputDirectory, sb.toString());
}

From source file:com.alibaba.citrus.maven.eclipse.base.eclipse.EclipsePlugin.java

License:Apache License

/** {@inheritDoc} */
public String getProjectNameForArifact(Artifact artifact) {
    IdeDependency[] workspaceArtefacts = getWorkspaceArtefacts();
    for (int index = 0; workspaceArtefacts != null && index < workspaceArtefacts.length; index++) {
        IdeDependency workspaceArtefact = workspaceArtefacts[index];
        if (workspaceArtefact.isAddedToClasspath()
                && workspaceArtefact.getGroupId().equals(artifact.getGroupId())
                && workspaceArtefact.getArtifactId().equals(artifact.getArtifactId())) {
            if (workspaceArtefact.getVersion().equals(artifact.getBaseVersion())) {
                return workspaceArtefact.getEclipseProjectName();
            }//w  w w  . java  2 s  .c  om
        }
    }
    MavenProject reactorProject = getReactorProject(artifact);
    if (reactorProject != null) {
        return IdeUtils.getProjectName(getProjectNameTemplateForMavenProject(reactorProject), artifact);
    }
    return IdeUtils.getProjectName(getProjectNameTemplate(), artifact);
}

From source file:com.alibaba.citrus.maven.eclipse.base.eclipse.EclipsePlugin.java

License:Apache License

/**
 * Utility method that locates a project in the workspace for the given artifact.
 *
 * @param artifact the artifact a project should produce.
 * @return <code>true</code> if the artifact is produced by a reactor projectart.
 *///from w ww  . j  a  v a  2 s.c  o  m
private boolean isAvailableAsAWorkspaceProject(Artifact artifact) {
    IdeDependency[] workspaceArtefacts = getWorkspaceArtefacts();
    for (int index = 0; workspaceArtefacts != null && index < workspaceArtefacts.length; index++) {
        IdeDependency workspaceArtefact = workspaceArtefacts[index];
        if (workspaceArtefact.getGroupId().equals(artifact.getGroupId())
                && workspaceArtefact.getArtifactId().equals(artifact.getArtifactId())) {
            if (workspaceArtefact.getVersion().equals(artifact.getBaseVersion())) {
                workspaceArtefact.setAddedToClasspath(true);
                getLog().debug("Using workspace project: " + workspaceArtefact.getEclipseProjectName());
                return true;
            } else {
                getLog().info("Artifact " + artifact.getId()
                        + " already available as a workspace project, but with different version. Expected: "
                        + artifact.getBaseVersion() + ", found: " + workspaceArtefact.getVersion());
            }
        }
    }
    return false;
}

From source file:com.coderplus.utils.apache.DependencyUtil.java

License:Apache License

/**
 * Builds the file name. If removeVersion is set, then the file name must be
 * reconstructed from the groupId (if <b>prependGroupId</b> is true) artifactId,
 * Classifier (if used) and Type.//from   ww  w . j a v a2 s. c o  m
 * Otherwise, this method returns the artifact file name.
 * 
 * @param artifact
 *            File to be formatted.
 * @param removeVersion
 *            Specifies if the version should be removed from the file name.
 * @param prependGroupId
 *            Specifies if the groupId should be prepended to the file name.
 * @param useBaseVersion
 *            Specifies if the baseVersion of the artifact should be used instead of the version.
 * @param removeClassifier
 *            Specifies if the classifier of the artifact should be remved from the file name.
 * @return Formatted file name in the format
 *         [groupId].artifactId-[version]-[classifier].[type]
 */
public static String getFormattedFileName(Artifact artifact, boolean removeVersion, boolean prependGroupId,
        boolean useBaseVersion, boolean removeClassifier) {
    StringBuilder destFileName = new StringBuilder();

    if (prependGroupId) {
        destFileName.append(artifact.getGroupId()).append(".");
    }

    String versionString;
    if (!removeVersion) {
        if (useBaseVersion) {
            versionString = "-" + artifact.getBaseVersion();
        } else {
            versionString = "-" + artifact.getVersion();
        }
    } else {
        versionString = "";
    }

    String classifierString = "";

    if (!removeClassifier && StringUtils.isNotEmpty(artifact.getClassifier())) {
        classifierString = "-" + artifact.getClassifier();
    }
    destFileName.append(artifact.getArtifactId()).append(versionString);
    destFileName.append(classifierString).append(".");
    destFileName.append(artifact.getArtifactHandler().getExtension());

    return destFileName.toString();
}