1515 */
1616package org .grails .plugins .support ;
1717
18+ import grails .io .ResourceUtils ;
19+ import grails .util .BuildSettings ;
20+ import grails .util .GrailsStringUtils ;
1821import org .springframework .util .StringUtils ;
1922
2023import java .io .File ;
@@ -37,12 +40,24 @@ public List<WatchPattern> getWatchPatterns(List<String> patterns) {
3740 for (String pattern : patterns ) {
3841 WatchPattern watchPattern = new WatchPattern ();
3942 watchPattern .setPattern (pattern );
40- if (pattern .startsWith ("file:" )) {
41- pattern = pattern .substring (5 );
43+ boolean isClasspath = false ;
44+ if (pattern .startsWith (ResourceUtils .FILE_URL_PREFIX )) {
45+ pattern = pattern .substring (ResourceUtils .FILE_URL_PREFIX .length ());
46+ }
47+ else if (pattern .startsWith (ResourceUtils .CLASSPATH_URL_PREFIX )) {
48+ pattern = pattern .substring (ResourceUtils .CLASSPATH_URL_PREFIX .length ());
49+ isClasspath = true ;
4250 }
4351
4452 if (pattern .contains (WILD_CARD )) {
45- watchPattern .setDirectory (new File (pattern .substring (0 , pattern .indexOf (WILD_CARD ))));
53+ String dirPath = pattern .substring (0 , pattern .indexOf (WILD_CARD ));
54+ if (!GrailsStringUtils .isBlank (dirPath )) {
55+ watchPattern .setDirectory (new File (dirPath ));
56+ }
57+ else if (isClasspath && BuildSettings .BASE_DIR != null ) {
58+ watchPattern .setDirectory (new File (BuildSettings .BASE_DIR , "src/main/resources" ));
59+ }
60+
4661 setExtension (pattern , watchPattern );
4762 watchPatterns .add (watchPattern );
4863 }
0 commit comments