Skip to content

Commit

Permalink
maven-plugin-plugin: avoid getProject() at execution time
Browse files Browse the repository at this point in the history
  • Loading branch information
larsgrefer committed Feb 1, 2025
1 parent bee4b04 commit 36c0330
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import org.gradle.api.file.DirectoryProperty;
import org.gradle.api.file.ProjectLayout;
import org.gradle.api.file.RegularFileProperty;
import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.provider.Property;
import org.gradle.api.tasks.*;

Expand Down Expand Up @@ -118,17 +117,16 @@ protected void generate() throws ExtractionException, InvalidPluginDescriptorExc
}

@Nonnull
private List<ComponentDependency> getRuntimeDependencies() {
return getProject().getConfigurations().getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME)
.getResolvedConfiguration()
.getResolvedArtifacts()
private List<ComponentDependency> getRuntimeDependencies() throws XmlPullParserException, IOException {
return MavenHelper.parsePom(getPomFile().get().getAsFile())
.getDependencies()
.stream()
.map(resolvedDependency -> {
ComponentDependency componentDependency = new ComponentDependency();

componentDependency.setArtifactId(resolvedDependency.getModuleVersion().getId().getName());
componentDependency.setGroupId(resolvedDependency.getModuleVersion().getId().getGroup());
componentDependency.setVersion(resolvedDependency.getModuleVersion().getId().getVersion());
componentDependency.setArtifactId(resolvedDependency.getArtifactId());
componentDependency.setGroupId(resolvedDependency.getGroupId());
componentDependency.setVersion(resolvedDependency.getVersion());
componentDependency.setType(resolvedDependency.getType());

return componentDependency;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
package io.freefair.gradle.plugins.maven.plugin.internal;

import lombok.experimental.UtilityClass;
import org.apache.maven.model.Model;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.block.JavadocBlockTagToHtmlConverter;
import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.block.SeeTagConverter;
import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline.*;
import org.codehaus.plexus.archiver.jar.JarUnArchiver;
import org.codehaus.plexus.archiver.manager.ArchiverManager;
import org.codehaus.plexus.archiver.manager.DefaultArchiverManager;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
Expand Down Expand Up @@ -43,4 +50,10 @@ public static ArchiverManager getArchiverManager() {
Collections.emptyMap()
);
}

public static Model parsePom(File pomFile) throws IOException, XmlPullParserException {
try (FileReader fileReader = new FileReader(pomFile)) {
return new MavenXpp3Reader().read(fileReader);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.freefair.gradle.plugins.maven.plugin.wrappers;

import io.freefair.gradle.plugins.maven.plugin.internal.MavenHelper;
import org.apache.maven.model.Model;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.project.MavenProject;
Expand Down Expand Up @@ -31,8 +32,7 @@ public MavenProjectWrapper(ProjectLayout projectLayout, File pomFile) throws IOE
this.projectLayout = projectLayout;
this.pomFile = pomFile;

MavenXpp3Reader reader = new MavenXpp3Reader();
Model model = reader.read(new FileReader(pomFile));
Model model = MavenHelper.parsePom(pomFile);

setModel(model);

Expand Down

0 comments on commit 36c0330

Please sign in to comment.