@@ -60,13 +60,13 @@ public class CopyResourcesProcessor implements ResourcesProcessor {
60
60
@ Override
61
61
public void process (File sourceRootDirectory , File outputRootDirectory , AsciidoctorMojo configuration ) {
62
62
final List <Resource > finalResources = prepareResources (sourceRootDirectory , configuration );
63
- copyResources (finalResources , outputRootDirectory );
63
+ copyResources (finalResources , outputRootDirectory , configuration );
64
64
}
65
65
66
66
/**
67
67
* Initializes resources attribute excluding AsciiDoc documents, internal directories/files (those prefixed with
68
68
* underscore), and docinfo files.
69
- * By default everything in the sources directories is copied.
69
+ * By default, everything in the sources directories is copied.
70
70
*
71
71
* @return Collection of resources with properly configured includes and excludes conditions.
72
72
*/
@@ -116,10 +116,22 @@ private List<Resource> prepareResources(File sourceDirectory, AsciidoctorMojo co
116
116
*
117
117
* @param resources Collection of {@link Resource} defining what resources to {@code outputDirectory}.
118
118
* @param outputDirectory Directory where to copy resources.
119
+ * @param configuration Project configuration
119
120
*/
120
- private void copyResources (List <Resource > resources , File outputDirectory ) {
121
+ private void copyResources (List <Resource > resources , File outputDirectory , AsciidoctorMojo configuration ) {
121
122
122
123
resources .stream ()
124
+ .map (resource -> {
125
+ final File candidate = new File (resource .getDirectory ());
126
+ final File sourceDir = candidate .isAbsolute () ? candidate : new File (configuration .getProjectDirectory (), resource .getDirectory ());
127
+
128
+ final Resource sanitizedResource = new Resource ();
129
+ sanitizedResource .setDirectory (sourceDir .getAbsolutePath ());
130
+ sanitizedResource .setTargetPath (resource .getTargetPath ());
131
+ sanitizedResource .setIncludes (resource .getIncludes ());
132
+ sanitizedResource .setExcludes (resource .getExcludes ());
133
+ return sanitizedResource ;
134
+ })
123
135
.filter (resource -> new File (resource .getDirectory ()).exists ())
124
136
.forEach (resource -> {
125
137
DirectoryScanner directoryScanner = new DirectoryScanner ();
0 commit comments