[
https://issues.apache.org/jira/browse/MNG-7740?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17725098#comment-17725098
]
ASF GitHub Bot commented on MNG-7740:
-------------------------------------
gnodet commented on code in PR #1117:
URL: https://github.com/apache/maven/pull/1117#discussion_r1200954771
##########
maven-core/src/main/java/org/apache/maven/internal/transformation/ConsumerPomArtifactTransformer.java:
##########
@@ -77,13 +82,29 @@ public void injectTransformedArtifacts(MavenProject
project, RepositorySystemSes
Files.createDirectories(buildDir);
generatedFile = Files.createTempFile(buildDir,
CONSUMER_POM_CLASSIFIER, "pom");
}
+ deferDeleteFile(generatedFile);
project.addAttachedArtifact(new ConsumerPomArtifact(project,
generatedFile, session));
} else if (project.getModel().isRoot()) {
throw new IllegalStateException(
"The use of the root attribute on the model requires the
buildconsumer feature to be active");
}
}
+ private void deferDeleteFile(Path generatedFile) {
+ toDelete.add(generatedFile.toAbsolutePath().toString());
Review Comment:
I didn't want to hold references to the objects such as the `FileSystem`,
I've modelled it to be in line with the `File#deleteOnExit` implementation of
openjdk which was using `String` instead of `File`. But I don't foresee any
real problem keeping references to `Path`, provided that we do use the
`toAbsolutePath()`.
> Target directory is flooded with consumer*pom files
> ---------------------------------------------------
>
> Key: MNG-7740
> URL: https://issues.apache.org/jira/browse/MNG-7740
> Project: Maven
> Issue Type: Improvement
> Components: build/consumer, Core
> Affects Versions: 4.0.0-alpha-4
> Environment: Apache Maven 4.0.0-alpha-4
> (009cf4a7213aead8a7946a2397e2396c5927f30f)
> Maven home: /Users/maarten/Tools/apache-maven-4.0.0-alpha-4
> Java version: 17.0.6, vendor: Eclipse Adoptium, runtime:
> /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
> Default locale: en_NL, platform encoding: UTF-8
> OS name: "mac os x", version: "13.2.1", arch: "aarch64", family: "mac"
> Reporter: Maarten Mulders
> Priority: Minor
> Labels: up-for-grabs
>
> After invoking Mavens {{validate}} or later lifecycle phase, there is a
> *consumerXXXpom* file left in the build directory. Here, XXX is a bunch of
> numbers.
> It is not harmful, but I dislike the fact that for every invocation of Maven,
> the file gets generated again and again. This can quickly lead to tens of
> files that are never used again anymore. I feel we should clean those files
> when we're done using them.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)