Index: AbstractGrailsMojo.java =================================================================== --- AbstractGrailsMojo.java (.../src/main/java/org/grails/maven/plugin/AbstractGrailsMojo.java) (revision 3494) +++ AbstractGrailsMojo.java (.../trunk/src/main/java/org/grails/maven/plugin/AbstractGrailsMojo.java) (revision 3507) @@ -207,7 +207,25 @@ try { classpath = new URL[deps.size() + 1]; int index = 0; - for (Iterator iter = deps.iterator(); iter.hasNext();) { + + // See GRAILS-4969 + // patch markus.kramer@neofonie.de start + // make sure grails-bootstrap comes first + Artifact[] sortedDeps = new Artifact[deps.size()]; + int i = 1; + for (Iterator iter = deps.iterator(); iter.hasNext();) { + Artifact artifact = (Artifact) iter.next(); + if ("org.grails".equals(artifact.getGroupId()) && "grails-bootstrap".equals(artifact.getArtifactId())) { + sortedDeps[0] = artifact; + } else { + sortedDeps[i] = artifact; + i++; + } + } + + for (Iterator iter = Arrays.asList(sortedDeps).iterator(); iter.hasNext();) { + // patch markus.kramer@neofonie.de end + // was: for (Iterator iter = deps.iterator(); iter.hasNext();) { classpath[index++] = ((Artifact) iter.next()).getFile().toURI().toURL(); }