diff --git a/src/main/java/org/jsweet/AbstractJSweetMojo.java b/src/main/java/org/jsweet/AbstractJSweetMojo.java index 282c418..1e0898d 100644 --- a/src/main/java/org/jsweet/AbstractJSweetMojo.java +++ b/src/main/java/org/jsweet/AbstractJSweetMojo.java @@ -104,7 +104,7 @@ public abstract class AbstractJSweetMojo extends AbstractMojo { */ @Parameter(required = false) private List compileSourceRootsOverride; - + @Parameter(required = false) protected Boolean verbose; @@ -117,6 +117,9 @@ public abstract class AbstractJSweetMojo extends AbstractMojo { @Parameter(required = false) protected File candiesJsOut; + @Parameter(required = false) + protected String[] allowedDependencyScopes; + @Parameter protected String[] includes; @@ -158,7 +161,7 @@ public abstract class AbstractJSweetMojo extends AbstractMojo { @Parameter(required = false) protected String javaCompilerExtraOptions; - + @Parameter(required = false) protected Boolean ignoreTypeScriptErrors; @@ -228,7 +231,7 @@ private void scanForJavaFiles(List sources, File sourceDirectory) { getLog().debug(sourceDirectory.getAbsolutePath() + " is declared but doesn't exist"); return; } - + DirectoryScanner dirScanner = new DirectoryScanner(); dirScanner.setBasedir(sourceDirectory); dirScanner.setIncludes(includes); @@ -567,12 +570,22 @@ protected List getCandiesJars() throws ArtifactResolutionException, Artifa List dependencies = project.getDependencies(); logInfo("dependencies=" + dependencies); + Set allowedScopes = new HashSet<>(); + if (allowedDependencyScopes != null) { + allowedScopes.addAll(Set.of(allowedDependencyScopes)); + } else { + allowedScopes.add(Artifact.SCOPE_COMPILE); + } + // add artifacts of declared dependencies List directDependencies = new LinkedList<>(); for (Dependency dependency : dependencies) { - if (!dependency.getType().equals("jar") - || dependency.getScope() != null && !dependency.getScope().equals(Artifact.SCOPE_COMPILE)) { - getLog().warn("dependency type not-jar excluded from candies detection: " + dependency); + if (!dependency.getType().equals("jar")) { + getLog().warn("dependency of type other than jar excluded from candies detection: " + dependency); + continue; + } + if (!allowedScopes.contains(dependency.getScope())) { + getLog().warn("dependency with scope '" + dependency.getScope() + "' excluded from candies detection: " + dependency); continue; } Artifact mavenArtifact = artifactFactory.createArtifact(dependency.getGroupId(), dependency.getArtifactId(), @@ -610,7 +623,7 @@ protected MavenProject getMavenProject() { MavenProject project = (MavenProject) ctx.get("project"); return project; } - + protected List getCompileSourceRoots(MavenProject project) { if (compileSourceRootsOverride == null || compileSourceRootsOverride.isEmpty()) { return project.getCompileSourceRoots(); diff --git a/src/main/java/org/jsweet/JSweetWatchMojo.java b/src/main/java/org/jsweet/JSweetWatchMojo.java index 545471e..c484d9c 100644 --- a/src/main/java/org/jsweet/JSweetWatchMojo.java +++ b/src/main/java/org/jsweet/JSweetWatchMojo.java @@ -289,7 +289,7 @@ public void run() { } __Lock.unlock(); } - yield(); + Thread.yield(); } } }