This commit is contained in:
		
							
								
								
									
										93
									
								
								.mvn/wrapper/MavenWrapperDownloader.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								.mvn/wrapper/MavenWrapperDownloader.java
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,93 @@ | ||||
| /* | ||||
|  * Licensed to the Apache Software Foundation (ASF) under one | ||||
|  * or more contributor license agreements.  See the NOTICE file | ||||
|  * distributed with this work for additional information | ||||
|  * regarding copyright ownership.  The ASF licenses this file | ||||
|  * to you under the Apache License, Version 2.0 (the | ||||
|  * "License"); you may not use this file except in compliance | ||||
|  * with the License.  You may obtain a copy of the License at | ||||
|  * | ||||
|  *  http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, | ||||
|  * software distributed under the License is distributed on an | ||||
|  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||||
|  * KIND, either express or implied.  See the License for the | ||||
|  * specific language governing permissions and limitations | ||||
|  * under the License. | ||||
|  */ | ||||
|  | ||||
| import java.io.IOException; | ||||
| import java.io.InputStream; | ||||
| import java.net.Authenticator; | ||||
| import java.net.PasswordAuthentication; | ||||
| import java.net.URI; | ||||
| import java.net.URL; | ||||
| import java.nio.file.Files; | ||||
| import java.nio.file.Path; | ||||
| import java.nio.file.Paths; | ||||
| import java.nio.file.StandardCopyOption; | ||||
| import java.util.concurrent.ThreadLocalRandom; | ||||
|  | ||||
| public final class MavenWrapperDownloader { | ||||
|   private static final String WRAPPER_VERSION = "3.3.2"; | ||||
|  | ||||
|   private static final boolean VERBOSE = Boolean.parseBoolean(System.getenv("MVNW_VERBOSE")); | ||||
|  | ||||
|   public static void main(String[] args) { | ||||
|     log("Apache Maven Wrapper Downloader " + WRAPPER_VERSION); | ||||
|  | ||||
|     if (args.length != 2) { | ||||
|       System.err.println(" - ERROR wrapperUrl or wrapperJarPath parameter missing"); | ||||
|       System.exit(1); | ||||
|     } | ||||
|  | ||||
|     try { | ||||
|       log(" - Downloader started"); | ||||
|       final URL wrapperUrl = URI.create(args[0]).toURL(); | ||||
|       final String jarPath = args[1].replace("..", ""); // 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); | ||||
|         } | ||||
|       }); | ||||
|     } | ||||
|     Path temp = wrapperJarPath | ||||
|       .getParent() | ||||
|       .resolve(wrapperJarPath.getFileName() + "." | ||||
|         + Long.toUnsignedString(ThreadLocalRandom.current().nextLong()) + ".tmp"); | ||||
|     try (InputStream inStream = wrapperUrl.openStream()) { | ||||
|       Files.copy(inStream, temp, StandardCopyOption.REPLACE_EXISTING); | ||||
|       Files.move(temp, wrapperJarPath, StandardCopyOption.REPLACE_EXISTING); | ||||
|     } finally { | ||||
|       Files.deleteIfExists(temp); | ||||
|     } | ||||
|     log(" - Downloader complete"); | ||||
|   } | ||||
|  | ||||
|   private static void log(String msg) { | ||||
|     if (VERBOSE) { | ||||
|       System.out.println(msg); | ||||
|     } | ||||
|   } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Guillaume Dugas
					Guillaume Dugas