This is an automated email from the ASF dual-hosted git repository. benjobs pushed a commit to branch mvnWrapper in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
commit ae611eeb58ecd4be24f6f1ec15ee41a360e17e3f Author: benjobs <[email protected]> AuthorDate: Sat Dec 2 14:06:30 2023 +0800 [Improve] mvnw check maven-wrapper.jar improvement --- .mvn/wrapper/MavenWrapperHelper.java | 136 ++++++++++++--------- .mvn/wrapper/maven-wrapper.properties | 1 + build.sh | 20 --- mvnw | 129 +++++++++++-------- .../src/main/assembly/bin/mvnw | 129 +++++++++++-------- .../streampark/console/core/entity/Project.java | 27 ++-- 6 files changed, 244 insertions(+), 198 deletions(-) diff --git a/.mvn/wrapper/MavenWrapperHelper.java b/.mvn/wrapper/MavenWrapperHelper.java index da55d396e..8d24566aa 100644 --- a/.mvn/wrapper/MavenWrapperHelper.java +++ b/.mvn/wrapper/MavenWrapperHelper.java @@ -15,6 +15,8 @@ * limitations under the License. */ +import java.io.File; +import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.Authenticator; @@ -24,75 +26,97 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; +import java.security.MessageDigest; import java.util.Arrays; -import java.util.jar.JarFile; +import java.util.Properties; public final class MavenWrapperHelper { - private static final String WRAPPER_VERSION = "3.2.0"; + private static final String WRAPPER_VERSION = "3.2.0"; - private static final boolean VERBOSE = Boolean.parseBoolean(System.getenv("MVNW_VERBOSE")); + private static final boolean VERBOSE = Boolean.parseBoolean(System.getenv("MVNW_VERBOSE")); - public static void main(String[] args) { - String action = args[0].toLowerCase(); - String[] actionArgs = Arrays.copyOfRange(args, 1, args.length); - switch (action) { - case "download": - log("Apache Maven Wrapper Downloader " + WRAPPER_VERSION); - if (actionArgs.length != 2) { - System.err.println(" - ERROR wrapperUrl or wrapperJarPath parameter missing"); - System.exit(1); + public static void main(String[] args) throws Exception { + String action = args[0].toLowerCase(); + String[] actionArgs = Arrays.copyOfRange(args, 1, args.length); + switch (action) { + case "download": + log("Apache Maven Wrapper Downloader " + WRAPPER_VERSION); + if (actionArgs.length != 2) { + System.err.println(" - ERROR wrapperUrl or wrapperJarPath parameter missing"); + System.exit(1); + } + try { + log(" - Downloader started"); + final URL wrapperUrl = new URL(actionArgs[0]); + final String jarPath = actionArgs[1].replace("src/main", ""); // Sanitize path + final Path wrapperJarPath = Paths.get(jarPath).toAbsolutePath().normalize(); + downloadFileFromURL(wrapperUrl, wrapperJarPath); + log("Done"); + } catch (IOException e) { + System.err.println("- Error downloading: " + e.getMessage()); + if (VERBOSE) { + e.printStackTrace(); + } + System.exit(1); + } + break; + case "verify": + String wrapperJar = actionArgs[0]; + String propertiesPath = actionArgs[1]; + log("maven-wrapper file checking: " + wrapperJar); + Properties properties = new Properties(); + properties.load(Files.newInputStream(new File(propertiesPath).toPath())); + String wrapperMd5 = properties.getProperty("wrapperMd5"); + if (wrapperMd5 == null) { + System.err.println("wrapperMd5 not in " + propertiesPath); + } + String fileMd5 = getFileMd5(wrapperJar); + System.exit(wrapperMd5.equals(fileMd5) ? 0 : 1); + default: + throw new UnsupportedOperationException("Unknown action \"" + action + "\"."); } - try { - log(" - Downloader started"); - final URL wrapperUrl = new URL(actionArgs[0]); - final String jarPath = actionArgs[1].replace("src/main", ""); // Sanitize path - final Path wrapperJarPath = Paths.get(jarPath).toAbsolutePath().normalize(); - downloadFileFromURL(wrapperUrl, wrapperJarPath); - log("Done"); - } catch (IOException e) { - System.err.println("- Error downloading: " + e.getMessage()); - if (VERBOSE) { - e.printStackTrace(); - } - System.exit(1); + } + + private static void downloadFileFromURL(URL wrapperUrl, Path wrapperJarPath) throws IOException { + log(" - Downloading to: " + wrapperJarPath); + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + final String username = System.getenv("MVNW_USERNAME"); + final char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault( + new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); } - break; - case "verify": - String wrapperJar = actionArgs[0]; - log("maven-wrapper file checking: " + wrapperJar); - try (JarFile ignored = new JarFile(wrapperJar, true)) { - System.exit(0); - } catch (Exception e) { - System.exit(1); + try (InputStream inStream = wrapperUrl.openStream()) { + Files.copy(inStream, wrapperJarPath, StandardCopyOption.REPLACE_EXISTING); } - default: - throw new UnsupportedOperationException("Unknown action \"" + action + "\"."); + log(" - Downloader complete"); } - } - private static void downloadFileFromURL(URL wrapperUrl, Path wrapperJarPath) throws IOException { - log(" - Downloading to: " + wrapperJarPath); - if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { - final String username = System.getenv("MVNW_USERNAME"); - final char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); - Authenticator.setDefault( - new Authenticator() { - @Override - protected PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(username, password); + public static String getFileMd5(String path) throws Exception { + MessageDigest md5 = MessageDigest.getInstance("MD5"); + try (FileInputStream inputStream = new FileInputStream(path)) { + byte[] buffer = new byte[1024]; + int len; + while ((len = inputStream.read(buffer)) != -1) { + md5.update(buffer, 0, len); } - }); - } - try (InputStream inStream = wrapperUrl.openStream()) { - Files.copy(inStream, wrapperJarPath, StandardCopyOption.REPLACE_EXISTING); + byte[] byteArray = md5.digest(); + StringBuilder sb = new StringBuilder(); + for (byte b : byteArray) { + sb.append(String.format("%02x", b)); + } + return sb.toString(); + } } - log(" - Downloader complete"); - } - private static void log(String msg) { - if (VERBOSE) { - System.out.println(msg); + private static void log(String msg) { + if (VERBOSE) { + System.out.println(msg); + } } - } } diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index fde9af104..e42c9fef2 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -17,3 +17,4 @@ distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.zip wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar +wrapperMd5=6058337c6ed4603858c3b72f754efa9b diff --git a/build.sh b/build.sh index cad35d8ee..853cea1ba 100755 --- a/build.sh +++ b/build.sh @@ -179,26 +179,6 @@ build() { printf '\n' echo_g """StreamPark project build successful! dist: $(cd "$PRG_DIR" &>/dev/null && pwd)/dist\n""" - else - javaSource="$PRG_DIR/.mvn/wrapper/MavenWrapperHelper.java" - javaClass="$PRG_DIR/.mvn/wrapper/MavenWrapperHelper.class" - wrapperJarPath="$PRG_DIR/.mvn/wrapper/maven-wrapper.jar" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaSource=$(cygpath --path --windows "$javaSource") - javaClass=$(cygpath --path --windows "$javaClass") - fi - if [ -e "$javaSource" ]; then - [ ! -e "$javaClass" ] && ("$JAVA_HOME/bin/javac" "$javaSource") - if [ -e "$javaClass" ]; then - ("$JAVA_HOME/bin/java" -cp "$PRG_DIR/.mvn/wrapper" MavenWrapperHelper "verify" "$wrapperJarPath") - if [ $? -eq 1 ]; then - echo_r "Error: $wrapperJarPath is invalid. retry download it and build project again..." - rm -f $wrapperJarPath - build - fi - fi - fi fi else echo_r "permission denied: $PRG_DIR/mvnw, please check." diff --git a/mvnw b/mvnw index 916dee8a3..9a7fa3704 100755 --- a/mvnw +++ b/mvnw @@ -188,64 +188,87 @@ log "$MAVEN_PROJECTBASEDIR" # This allows using the maven wrapper in projects that prohibit checking in binary data. ########################################################################################## wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" +javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.java" +javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.class" +wrapperProperties="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" +# For Cygwin, switch paths to Windows format before running javac +if $cygwin; then + javaSource=$(cygpath --path --windows "$javaSource") + javaClass=$(cygpath --path --windows "$javaClass") +fi + +if [ ! -e "$javaSource" ]; then + error "ERROR: $javaSource not exists." + exit 1 +fi + +if [ ! -e "$javaClass" ]; then + log " - Compiling $javaClass starting ..." + ("$JAVA_HOME/bin/javac" "$javaSource") +fi + if [ -r "$wrapperJarPath" ]; then - log "Found $wrapperJarPath" -else - log "Couldn't find $wrapperJarPath, downloading it ..." + log "Found $wrapperJarPath" + log "Check found $wrapperJarPath starting" + ("$JAVA_HOME/bin/java" -cp "$MAVEN_PROJECTBASEDIR/.mvn/wrapper" MavenWrapperHelper "verify" "$wrapperJarPath" "$wrapperProperties") + if [ $? -eq 1 ]; then + echo "WARN: Check found $wrapperJarPath invalided." + rm -f $wrapperJarPath + fi +fi - if [ -n "$MVNW_REPOURL" ]; then - wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" +if [ ! -e "$wrapperJarPath" ]; then + log " - downloading wrapperJar ..." + if [ -n "$MVNW_REPOURL" ]; then + wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + else + wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + fi + while IFS="=" read -r key value; do + # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) + safeValue=$(echo "$value" | tr -d '\r') + case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; + esac + done < $wrapperProperties + log "Downloading from: $wrapperUrl" + + if $cygwin; then + wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") + fi + + if command -v wget > /dev/null; then + log "Found wget ... using wget" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" else - wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" fi - while IFS="=" read -r key value; do - # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) - safeValue=$(echo "$value" | tr -d '\r') - case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; - esac - done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" - log "Downloading from: $wrapperUrl" - - if $cygwin; then - wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") - fi - - if command -v wget > /dev/null; then - log "Found wget ... using wget" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - else - wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - log "Found curl ... using curl" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - else - curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - fi + elif command -v curl > /dev/null; then + log "Found curl ... using curl" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" else - log "Falling back to using Java to download" - javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.java" - javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.class" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaSource=$(cygpath --path --windows "$javaSource") - javaClass=$(cygpath --path --windows "$javaClass") - fi - if [ -e "$javaSource" ]; then - if [ ! -e "$javaClass" ]; then - log " - Compiling MavenWrapperHelper.java ..." - ("$JAVA_HOME/bin/javac" "$javaSource") - fi - if [ -e "$javaClass" ]; then - log " - Running MavenWrapperHelper.java ..." - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperHelper "download" "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" - fi - fi + curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" fi + else + log "Falling back to using Java to download" + log " - Running MavenWrapperHelper.java ..." + ("$JAVA_HOME/bin/java" -cp "$MAVEN_PROJECTBASEDIR/.mvn/wrapper" MavenWrapperHelper "download" "$wrapperUrl" "$wrapperJarPath") + if [ $? -ne 0 ]; then + rm -f "$wrapperJarPath" + echo "ERROR: download wrapperJar by Java failed, please retry" + exit 1; + fi + fi + + log "Check $wrapperJarPath." + ("$JAVA_HOME/bin/java" -cp "$MAVEN_PROJECTBASEDIR/.mvn/wrapper" MavenWrapperHelper "verify" "$wrapperJarPath" "$wrapperProperties") + if [ $? -eq 1 ]; then + echo "ERROR: Check $wrapperJarPath invalided, please retry" + exit 1 + fi fi ########################################################################################## # End of extension @@ -256,7 +279,7 @@ wrapperSha256Sum="" while IFS="=" read -r key value; do case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; esac -done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" +done < $wrapperProperties if [ -n "$wrapperSha256Sum" ]; then wrapperSha256Result=false if command -v sha256sum > /dev/null; then diff --git a/streampark-console/streampark-console-service/src/main/assembly/bin/mvnw b/streampark-console/streampark-console-service/src/main/assembly/bin/mvnw index 916dee8a3..9a7fa3704 100755 --- a/streampark-console/streampark-console-service/src/main/assembly/bin/mvnw +++ b/streampark-console/streampark-console-service/src/main/assembly/bin/mvnw @@ -188,64 +188,87 @@ log "$MAVEN_PROJECTBASEDIR" # This allows using the maven wrapper in projects that prohibit checking in binary data. ########################################################################################## wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" +javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.java" +javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.class" +wrapperProperties="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" +# For Cygwin, switch paths to Windows format before running javac +if $cygwin; then + javaSource=$(cygpath --path --windows "$javaSource") + javaClass=$(cygpath --path --windows "$javaClass") +fi + +if [ ! -e "$javaSource" ]; then + error "ERROR: $javaSource not exists." + exit 1 +fi + +if [ ! -e "$javaClass" ]; then + log " - Compiling $javaClass starting ..." + ("$JAVA_HOME/bin/javac" "$javaSource") +fi + if [ -r "$wrapperJarPath" ]; then - log "Found $wrapperJarPath" -else - log "Couldn't find $wrapperJarPath, downloading it ..." + log "Found $wrapperJarPath" + log "Check found $wrapperJarPath starting" + ("$JAVA_HOME/bin/java" -cp "$MAVEN_PROJECTBASEDIR/.mvn/wrapper" MavenWrapperHelper "verify" "$wrapperJarPath" "$wrapperProperties") + if [ $? -eq 1 ]; then + echo "WARN: Check found $wrapperJarPath invalided." + rm -f $wrapperJarPath + fi +fi - if [ -n "$MVNW_REPOURL" ]; then - wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" +if [ ! -e "$wrapperJarPath" ]; then + log " - downloading wrapperJar ..." + if [ -n "$MVNW_REPOURL" ]; then + wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + else + wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + fi + while IFS="=" read -r key value; do + # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) + safeValue=$(echo "$value" | tr -d '\r') + case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; + esac + done < $wrapperProperties + log "Downloading from: $wrapperUrl" + + if $cygwin; then + wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") + fi + + if command -v wget > /dev/null; then + log "Found wget ... using wget" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" else - wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" + wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" fi - while IFS="=" read -r key value; do - # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) - safeValue=$(echo "$value" | tr -d '\r') - case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; - esac - done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" - log "Downloading from: $wrapperUrl" - - if $cygwin; then - wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") - fi - - if command -v wget > /dev/null; then - log "Found wget ... using wget" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - else - wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - log "Found curl ... using curl" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - else - curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - fi + elif command -v curl > /dev/null; then + log "Found curl ... using curl" + [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" else - log "Falling back to using Java to download" - javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.java" - javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.class" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaSource=$(cygpath --path --windows "$javaSource") - javaClass=$(cygpath --path --windows "$javaClass") - fi - if [ -e "$javaSource" ]; then - if [ ! -e "$javaClass" ]; then - log " - Compiling MavenWrapperHelper.java ..." - ("$JAVA_HOME/bin/javac" "$javaSource") - fi - if [ -e "$javaClass" ]; then - log " - Running MavenWrapperHelper.java ..." - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperHelper "download" "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" - fi - fi + curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" fi + else + log "Falling back to using Java to download" + log " - Running MavenWrapperHelper.java ..." + ("$JAVA_HOME/bin/java" -cp "$MAVEN_PROJECTBASEDIR/.mvn/wrapper" MavenWrapperHelper "download" "$wrapperUrl" "$wrapperJarPath") + if [ $? -ne 0 ]; then + rm -f "$wrapperJarPath" + echo "ERROR: download wrapperJar by Java failed, please retry" + exit 1; + fi + fi + + log "Check $wrapperJarPath." + ("$JAVA_HOME/bin/java" -cp "$MAVEN_PROJECTBASEDIR/.mvn/wrapper" MavenWrapperHelper "verify" "$wrapperJarPath" "$wrapperProperties") + if [ $? -eq 1 ]; then + echo "ERROR: Check $wrapperJarPath invalided, please retry" + exit 1 + fi fi ########################################################################################## # End of extension @@ -256,7 +279,7 @@ wrapperSha256Sum="" while IFS="=" read -r key value; do case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; esac -done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" +done < $wrapperProperties if [ -n "$wrapperSha256Sum" ]; then wrapperSha256Result=false if command -v sha256sum > /dev/null; then diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java index f4f6637a5..882d94f19 100644 --- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java +++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java @@ -46,7 +46,6 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.jar.JarFile; import java.util.stream.Collectors; @Slf4j @@ -187,24 +186,20 @@ public class Project implements Serializable { @JsonIgnore public String getMavenArgs() { - String mvn = "mvn"; boolean windows = Utils.isWindows(); + String mvn = windows ? "mvn.cmd" : "mvn"; + + String mavenHome = System.getenv("M2_HOME"); + if (mavenHome == null) { + mavenHome = System.getenv("MAVEN_HOME"); + } + if (mavenHome != null) { + mvn = mavenHome + "/bin/" + mvn; + } + try { - if (windows) { - CommandUtils.execute("mvn.cmd --version"); - } else { - CommandUtils.execute("mvn --version"); - } + CommandUtils.execute(mvn + " --version"); } catch (Exception e) { - File wrapperJar = new File(WebUtils.getAppHome().concat("/.mvn/wrapper/maven-wrapper.jar")); - if (wrapperJar.exists()) { - try { - JarFile jarFile = new JarFile(wrapperJar, true); - jarFile.close(); - } catch (Exception ignored) { - FileUtils.deleteQuietly(wrapperJar); - } - } if (windows) { mvn = WebUtils.getAppHome().concat("/bin/mvnw.cmd"); } else {
