Skip to content

Commit

Permalink
Fix Maven/Gradle wrapper executable flag
Browse files Browse the repository at this point in the history
Spring Initalizr now bundles a wrapper script for the build system. While
that wrapper has the necessary execute flag in the zip archive, that flag
is lost as the zip abstraction does not honor those.

The init command now makes sure to restore the execute flag on `mvnw`
and `gradlew` if necessary.

Unfortunately, this can't be tested as the Windows build would fail to
assert that the executable flag has been propertly set.

Closes spring-projectsgh-4392
  • Loading branch information
snicoll committed Nov 6, 2015
1 parent 96ca3e0 commit 6d90188
Showing 1 changed file with 10 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2012-2014 the original author or authors.
* Copyright 2012-2015 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -106,6 +106,8 @@ private void extractProject(ProjectGenerationResponse entity, String output,
new ByteArrayInputStream(entity.getContent()));
try {
extractFromStream(zipStream, overwrite, outputFolder);
fixExecutableFlag(outputFolder, "mvnw");
fixExecutableFlag(outputFolder, "gradlew");
Log.info("Project extracted to '" + outputFolder.getAbsolutePath() + "'");
}
finally {
Expand Down Expand Up @@ -154,4 +156,11 @@ private void writeProject(ProjectGenerationResponse entity, String output,
Log.info("Content saved to '" + output + "'");
}

private void fixExecutableFlag(File dir, String fileName) {
File f = new File(dir, fileName);
if (f.exists()) {
f.setExecutable(true, false);
}
}

}

0 comments on commit 6d90188

Please sign in to comment.