This is an automated email from the ASF dual-hosted git repository.

gnodet pushed a commit to branch maven-4.0.x-test-fixes
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 29a68efdaf704f0dfb416828477229b4c74a2b4c
Author: Guillaume Nodet <[email protected]>
AuthorDate: Wed Apr 1 10:41:25 2026 +0200

    fix: sync Build.resources from sources set for Maven 3 compat
    
    Also sync the model's Build.resources after project building so that
    project.getBuild().getResources() is consistent with
    project.getResources() even when resources are defined via <sources>
    (Maven 4.1.0 model) rather than legacy <resources>.
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 .../org/apache/maven/project/DefaultProjectBuilder.java     |  6 ++++++
 .../main/java/org/apache/maven/project/MavenProject.java    | 13 +++++++++----
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git 
a/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
 
b/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
index bcc0e28abb..efa4ce2efc 100644
--- 
a/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
+++ 
b/impl/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
@@ -771,6 +771,12 @@ implicit fallback (only if they match the default, e.g., 
inherited)
                     
sourceContext.handleResourceConfiguration(ProjectScope.MAIN);
                     
sourceContext.handleResourceConfiguration(ProjectScope.TEST);
                 }
+
+                // Sync model Build resources from sources set so that
+                // project.getBuild().getResources() is consistent with 
project.getResources().
+                // This is needed for Maven 3 plugin compatibility, since some 
plugins
+                // (e.g. maven-source-plugin) access resources via 
project.getBuild().getResources().
+                project.syncBuildResources();
             }
 
             project.setActiveProfiles(
diff --git 
a/impl/maven-core/src/main/java/org/apache/maven/project/MavenProject.java 
b/impl/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
index 72a81e64a4..e6c2c05acb 100644
--- a/impl/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
+++ b/impl/maven-core/src/main/java/org/apache/maven/project/MavenProject.java
@@ -848,16 +848,21 @@ private void addResource(ProjectScope scope, Resource 
resource) {
     }
 
     /**
-     * @deprecated {@link Resource} is replaced by {@link SourceRoot}.
+     * Syncs {@code Build.resources/testResources} from the {@code sources} set
+     * for Maven 3 plugin compatibility (e.g. when resources come from {@code 
<sources>}).
      */
+    void syncBuildResources() {
+        getModelBuild().setResources(new 
java.util.ArrayList<>(getResources()));
+        getModelBuild().setTestResources(new 
java.util.ArrayList<>(getTestResources()));
+    }
+
+    /** @deprecated {@link Resource} is replaced by {@link SourceRoot}. */
     @Deprecated(since = "4.0.0")
     public void addResource(Resource resource) {
         addResource(ProjectScope.MAIN, resource);
     }
 
-    /**
-     * @deprecated {@link Resource} is replaced by {@link SourceRoot}.
-     */
+    /** @deprecated {@link Resource} is replaced by {@link SourceRoot}. */
     @Deprecated(since = "4.0.0")
     public void addTestResource(Resource testResource) {
         addResource(ProjectScope.TEST, testResource);

Reply via email to