[ https://issues.apache.org/jira/browse/MNG-7740?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17721401#comment-17721401 ]
ASF GitHub Bot commented on MNG-7740: ------------------------------------- michael-o commented on code in PR #1105: URL: https://github.com/apache/maven/pull/1105#discussion_r1190060397 ########## maven-core/src/main/java/org/apache/maven/internal/transformation/ConsumerPomArtifactTransformer.java: ########## @@ -77,13 +80,34 @@ public void injectTransformedArtifacts(MavenProject project, RepositorySystemSes Files.createDirectories(buildDir); generatedFile = Files.createTempFile(buildDir, CONSUMER_POM_CLASSIFIER, "pom"); Review Comment: The suffix should be `.pom`, look at the Javadoc of this method. It is *not* the extension. ########## maven-core/src/main/java/org/apache/maven/internal/transformation/ConsumerPomArtifactTransformer.java: ########## @@ -77,13 +80,34 @@ public void injectTransformedArtifacts(MavenProject project, RepositorySystemSes Files.createDirectories(buildDir); generatedFile = Files.createTempFile(buildDir, CONSUMER_POM_CLASSIFIER, "pom"); } + + removeOldConsumerPomFiles(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 removeOldConsumerPomFiles(Path generatedFile) throws IOException { + List<Path> oldConsumerPomFiles; + String newestFileName = generatedFile.getFileName().toString(); + try (Stream<Path> stream = Files.walk(generatedFile.getParent(), 1)) { + oldConsumerPomFiles = stream.filter(path -> { + String fileName = path.getFileName().toString(); + return !fileName.equals(newestFileName) + && fileName.startsWith(CONSUMER_POM_CLASSIFIER) + && fileName.endsWith("pom"); Review Comment: Ditto. > 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)