Search in sources :

Example 1 with EnforcerRuleHelper

use of org.apache.maven.enforcer.rule.api.EnforcerRuleHelper in project quarkus by quarkusio.

the class DeploymentDependencyRuleSupport method execute.

@Override
public final void execute(EnforcerRuleHelper helper) throws EnforcerRuleException {
    logger = helper.getLog();
    MavenProject project;
    try {
        project = (MavenProject) helper.evaluate("${project}");
    } catch (ExpressionEvaluationException e) {
        throw new IllegalStateException("Failed to get project from EnforcerRuleHelper", e);
    }
    if (!isCheckRequired(project)) {
        return;
    }
    // general notes:
    // - "artifacts" are needed to retrieve the actual jar files
    // - "dependencies" are needed to limit the scope to only the direct dependencies of the current module
    // and to check for the proper scope, type and exclusions
    // - parents are not gathered here since it is expected that the rule is also active for those parents
    // or those parents are not relevant
    Map<String, Artifact> nonDeploymentArtifactsByGAV = project.getArtifacts().stream().filter(artifact -> "jar".equals(artifact.getType())).filter(artifact -> artifact.getGroupId().startsWith(GROUP_ID_PREFIX)).filter(artifact -> !artifact.getArtifactId().endsWith(DEPLOYMENT_ARTIFACT_ID_SUFFIX)).collect(Collectors.toMap(this::buildGAVKey, a -> a));
    // If the build goal is "late" enough, artifacts for the respective scope *will* be resolved automatically.
    if (nonDeploymentArtifactsByGAV.values().stream().anyMatch(artifact -> !artifact.isResolved())) {
        logger.warn("Skipping rule " + RequiresMinimalDeploymentDependency.class.getSimpleName() + ": Artifacts are not resolved, consider using a later build goal like 'package'.");
        return;
    }
    Map<String, Dependency> directDepsByGAV = project.getDependencies().stream().filter(d -> d.getGroupId().startsWith(GROUP_ID_PREFIX)).collect(Collectors.toMap(d -> d.getGroupId() + ":" + d.getArtifactId() + ":" + d.getVersion(), d -> d, (a, b) -> a));
    execute(project, nonDeploymentArtifactsByGAV, directDepsByGAV);
}
Also used : Properties(java.util.Properties) Files(java.nio.file.Files) ExpressionEvaluationException(org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Dependency(org.apache.maven.model.Dependency) IOException(java.io.IOException) EnforcerLevel(org.apache.maven.enforcer.rule.api.EnforcerLevel) Log(org.apache.maven.plugin.logging.Log) InputStreamReader(java.io.InputStreamReader) Collectors(java.util.stream.Collectors) File(java.io.File) StandardCharsets(java.nio.charset.StandardCharsets) EnforcerRule(org.apache.maven.enforcer.rule.api.EnforcerRule) UncheckedIOException(java.io.UncheckedIOException) MavenProject(org.apache.maven.project.MavenProject) Map(java.util.Map) Optional(java.util.Optional) ZipFile(java.util.zip.ZipFile) Artifact(org.apache.maven.artifact.Artifact) EnforcerRuleHelper(org.apache.maven.enforcer.rule.api.EnforcerRuleHelper) EnforcerRuleException(org.apache.maven.enforcer.rule.api.EnforcerRuleException) Path(java.nio.file.Path) ZipEntry(java.util.zip.ZipEntry) EnforcerRule2(org.apache.maven.enforcer.rule.api.EnforcerRule2) ExpressionEvaluationException(org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException) MavenProject(org.apache.maven.project.MavenProject) Dependency(org.apache.maven.model.Dependency) Artifact(org.apache.maven.artifact.Artifact)

Aggregations

File (java.io.File)1 IOException (java.io.IOException)1 InputStreamReader (java.io.InputStreamReader)1 UncheckedIOException (java.io.UncheckedIOException)1 StandardCharsets (java.nio.charset.StandardCharsets)1 Files (java.nio.file.Files)1 Path (java.nio.file.Path)1 Map (java.util.Map)1 Optional (java.util.Optional)1 Properties (java.util.Properties)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 Collectors (java.util.stream.Collectors)1 ZipEntry (java.util.zip.ZipEntry)1 ZipFile (java.util.zip.ZipFile)1 Artifact (org.apache.maven.artifact.Artifact)1 EnforcerLevel (org.apache.maven.enforcer.rule.api.EnforcerLevel)1 EnforcerRule (org.apache.maven.enforcer.rule.api.EnforcerRule)1 EnforcerRule2 (org.apache.maven.enforcer.rule.api.EnforcerRule2)1 EnforcerRuleException (org.apache.maven.enforcer.rule.api.EnforcerRuleException)1 EnforcerRuleHelper (org.apache.maven.enforcer.rule.api.EnforcerRuleHelper)1