Skip to content

Commit 36c0330

Browse files
committed
maven-plugin-plugin: avoid getProject() at execution time
1 parent bee4b04 commit 36c0330

File tree

3 files changed

+21
-10
lines changed

3 files changed

+21
-10
lines changed

maven-plugin-plugin/src/main/java/io/freefair/gradle/plugins/maven/plugin/DescriptorGeneratorTask.java

+6-8
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.gradle.api.file.DirectoryProperty;
2626
import org.gradle.api.file.ProjectLayout;
2727
import org.gradle.api.file.RegularFileProperty;
28-
import org.gradle.api.plugins.JavaPlugin;
2928
import org.gradle.api.provider.Property;
3029
import org.gradle.api.tasks.*;
3130

@@ -118,17 +117,16 @@ protected void generate() throws ExtractionException, InvalidPluginDescriptorExc
118117
}
119118

120119
@Nonnull
121-
private List<ComponentDependency> getRuntimeDependencies() {
122-
return getProject().getConfigurations().getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME)
123-
.getResolvedConfiguration()
124-
.getResolvedArtifacts()
120+
private List<ComponentDependency> getRuntimeDependencies() throws XmlPullParserException, IOException {
121+
return MavenHelper.parsePom(getPomFile().get().getAsFile())
122+
.getDependencies()
125123
.stream()
126124
.map(resolvedDependency -> {
127125
ComponentDependency componentDependency = new ComponentDependency();
128126

129-
componentDependency.setArtifactId(resolvedDependency.getModuleVersion().getId().getName());
130-
componentDependency.setGroupId(resolvedDependency.getModuleVersion().getId().getGroup());
131-
componentDependency.setVersion(resolvedDependency.getModuleVersion().getId().getVersion());
127+
componentDependency.setArtifactId(resolvedDependency.getArtifactId());
128+
componentDependency.setGroupId(resolvedDependency.getGroupId());
129+
componentDependency.setVersion(resolvedDependency.getVersion());
132130
componentDependency.setType(resolvedDependency.getType());
133131

134132
return componentDependency;

maven-plugin-plugin/src/main/java/io/freefair/gradle/plugins/maven/plugin/internal/MavenHelper.java

+13
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
package io.freefair.gradle.plugins.maven.plugin.internal;
22

33
import lombok.experimental.UtilityClass;
4+
import org.apache.maven.model.Model;
5+
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
46
import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.block.JavadocBlockTagToHtmlConverter;
57
import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.block.SeeTagConverter;
68
import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.inline.*;
79
import org.codehaus.plexus.archiver.jar.JarUnArchiver;
810
import org.codehaus.plexus.archiver.manager.ArchiverManager;
911
import org.codehaus.plexus.archiver.manager.DefaultArchiverManager;
12+
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
1013

14+
import java.io.File;
15+
import java.io.FileNotFoundException;
16+
import java.io.FileReader;
17+
import java.io.IOException;
1118
import java.util.Collections;
1219
import java.util.HashMap;
1320
import java.util.Map;
@@ -43,4 +50,10 @@ public static ArchiverManager getArchiverManager() {
4350
Collections.emptyMap()
4451
);
4552
}
53+
54+
public static Model parsePom(File pomFile) throws IOException, XmlPullParserException {
55+
try (FileReader fileReader = new FileReader(pomFile)) {
56+
return new MavenXpp3Reader().read(fileReader);
57+
}
58+
}
4659
}

maven-plugin-plugin/src/main/java/io/freefair/gradle/plugins/maven/plugin/wrappers/MavenProjectWrapper.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.freefair.gradle.plugins.maven.plugin.wrappers;
22

3+
import io.freefair.gradle.plugins.maven.plugin.internal.MavenHelper;
34
import org.apache.maven.model.Model;
45
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
56
import org.apache.maven.project.MavenProject;
@@ -31,8 +32,7 @@ public MavenProjectWrapper(ProjectLayout projectLayout, File pomFile) throws IOE
3132
this.projectLayout = projectLayout;
3233
this.pomFile = pomFile;
3334

34-
MavenXpp3Reader reader = new MavenXpp3Reader();
35-
Model model = reader.read(new FileReader(pomFile));
35+
Model model = MavenHelper.parsePom(pomFile);
3636

3737
setModel(model);
3838

0 commit comments

Comments
 (0)