3
3
import edu .umd .cs .findbugs .annotations .SuppressFBWarnings ;
4
4
import lombok .Getter ;
5
5
import lombok .Setter ;
6
+ import org .gradle .api .file .ConfigurableFileCollection ;
6
7
import org .gradle .api .file .FileCollection ;
7
- import org .gradle .api .tasks .InputFiles ;
8
- import org .gradle .api .tasks .JavaExec ;
9
- import org .gradle .api .tasks .Nested ;
10
- import org .gradle .api .tasks .OutputDirectory ;
8
+ import org .gradle .api .tasks .*;
11
9
12
10
import java .io .File ;
13
11
import java .util .stream .Collectors ;
@@ -19,16 +17,25 @@ public class Delombok extends JavaExec {
19
17
@ Nested
20
18
private DelombokOptions options = new DelombokOptions ();
21
19
20
+ @ Internal
21
+ private final ConfigurableFileCollection input = getProject ().files ();
22
+
22
23
@ InputFiles
23
- private FileCollection input ;
24
+ @ SkipWhenEmpty
25
+ protected FileCollection getNonEmptySourceRoots () {
26
+ return getProject ().files (
27
+ getInput ().getFiles ().stream ()
28
+ .filter (File ::isDirectory )
29
+ .collect (Collectors .toList ())
30
+ );
31
+ }
24
32
25
33
@ SuppressFBWarnings (value = "RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT" , justification = "setMain() and args()" )
26
34
public Delombok () {
27
35
setMain ("lombok.launch.Main" );
28
36
args ("delombok" );
29
37
getArgumentProviders ().add (getOptions ());
30
- getArgumentProviders ().add (() -> getInput ().getFiles ().stream ()
31
- .filter (File ::isDirectory )
38
+ getArgumentProviders ().add (() -> getNonEmptySourceRoots ().getFiles ().stream ()
32
39
.map (File ::getPath )
33
40
.collect (Collectors .toList ()));
34
41
}
0 commit comments