/*
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
https://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.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.Properties;
public class MavenWrapperDownloader {
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL =
"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: : " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
demo.zip (77个子文件)
demo
eureka-server
.gitignore 303B
.mvn
wrapper
maven-wrapper.jar 47KB
MavenWrapperDownloader.java 5KB
maven-wrapper.properties 116B
src
main
resources
templates
static
application.yml 273B
java
online
chriszfj
eurekaserver
EurekaServerApplication.java 529B
test
java
online
chriszfj
eurekaserver
EurekaServerApplicationTests.java 360B
eureka-server.iml 17KB
HELP.md 459B
mvnw 9KB
pom.xml 2KB
mvnw.cmd 6KB
target
classes
online
chriszfj
eurekaserver
EurekaServerApplication.class 826B
application.yml 273B
generated-test-sources
test-annotations
generated-sources
annotations
test-classes
online
chriszfj
eurekaserver
EurekaServerApplicationTests.class 670B
trace-3
.gitignore 303B
trace-3.iml 18KB
.mvn
wrapper
maven-wrapper.jar 47KB
MavenWrapperDownloader.java 5KB
maven-wrapper.properties 116B
src
main
resources
templates
static
application.yml 363B
java
com
example
trace3
Trace3Application.java 480B
TestController.java 561B
test
java
com
example
trace3
Trace3ApplicationTests.java 344B
HELP.md 532B
mvnw 9KB
pom.xml 2KB
mvnw.cmd 6KB
target
classes
com
example
trace3
TestController.class 854B
Trace3Application.class 781B
application.yml 363B
generated-test-sources
test-annotations
generated-sources
annotations
test-classes
com
example
trace3
Trace3ApplicationTests.class 632B
trace-2
.gitignore 303B
.mvn
wrapper
maven-wrapper.jar 47KB
MavenWrapperDownloader.java 5KB
maven-wrapper.properties 116B
src
main
resources
templates
static
application.yml 395B
java
com
example
trace2
RemoteTrace3Service.java 454B
Trace2Application.java 564B
RemoteTrace3ServiceFallback.java 340B
TestController.java 1KB
test
java
com
example
trace2
Trace2ApplicationTests.java 344B
HELP.md 649B
mvnw 9KB
pom.xml 3KB
mvnw.cmd 6KB
target
classes
com
example
trace2
RemoteTrace3Service.class 482B
RemoteTrace3ServiceFallback.class 592B
Trace2Application.class 844B
TestController.class 2KB
application.yml 396B
generated-test-sources
test-annotations
generated-sources
annotations
test-classes
com
example
trace2
Trace2ApplicationTests.class 632B
trace-2.iml 19KB
trace-1
.gitignore 303B
.mvn
wrapper
maven-wrapper.jar 47KB
MavenWrapperDownloader.java 5KB
maven-wrapper.properties 116B
src
main
resources
templates
static
application.yml 918B
java
com
example
trace1
RemoteTrace2Service.java 991B
RemoteTrace2ServiceFallback.java 494B
HystrixClientFallbackFactory.java 846B
Trace1Application.java 564B
TestController.java 979B
test
java
com
example
trace1
Trace1ApplicationTests.java 344B
HELP.md 649B
mvnw 9KB
pom.xml 3KB
mvnw.cmd 6KB
target
classes
com
example
trace1
HystrixClientFallbackFactory.class 1KB
RemoteTrace2Service.class 714B
TestController.class 1KB
Trace1Application.class 844B
RemoteTrace2ServiceFallback.class 767B
HystrixClientFallbackFactory$1.class 1KB
application.yml 919B
generated-test-sources
test-annotations
generated-sources
annotations
test-classes
com
example
trace1
Trace1ApplicationTests.class 632B
trace-1.iml 19KB
共 77 条
- 1
资源评论
- 恋恋墨尔本2021-01-22哪里有链路,扯淡
- qq_313806132019-05-13还不错的资源
- cylot2019-05-28代码还不错
MR_ZFJ
- 粉丝: 4
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功