44import java .io .IOException ;
55import java .util .ArrayList ;
66import java .util .Collection ;
7+ import java .util .List ;
78
89import jdepend .framework .JDepend ;
910import jdepend .framework .JavaPackage ;
11+ import jdepend .framework .PackageFilter ;
1012
1113import org .apache .maven .enforcer .rule .api .EnforcerRule ;
1214import org .apache .maven .enforcer .rule .api .EnforcerRuleException ;
1618public class NoPackageCyclesRule implements EnforcerRule {
1719
1820 private boolean includeTests = true ;
21+ private List <String > includedPackages = new ArrayList <>();
22+ private List <String > excludedPackages = new ArrayList <>();
1923
2024 public void execute (EnforcerRuleHelper helper ) throws EnforcerRuleException {
2125 try {
@@ -49,7 +53,9 @@ private void executePackageCycleCheck(Iterable<File> directories) throws IOExcep
4953 }
5054
5155 protected JDepend createJDepend () {
52- return new JDepend ();
56+ return new JDepend (PackageFilter .all ()
57+ .including (includedPackages )
58+ .excluding (excludedPackages ));
5359 }
5460
5561 private String getPackageCycles (JDepend jdepend ) {
@@ -72,4 +78,13 @@ public boolean isResultValid(EnforcerRule arg0) {
7278 public void setIncludeTests (boolean includeTests ) {
7379 this .includeTests = includeTests ;
7480 }
81+
82+ public void setIncludedPackages (List <String > includedPackages ) {
83+ this .includedPackages = includedPackages ;
84+ }
85+
86+ public void setExcludedPackages (List <String > excludedPackages ) {
87+ this .excludedPackages = excludedPackages ;
88+ }
89+
7590}
0 commit comments