/*
* Copyright 2007-present 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.
* 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.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.6";
/**
* 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/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".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 directory '" + 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 {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
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();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Spring Boot 是一个用于快速开发生产级别的基于 Spring 框架的应用程序的工具。它简化了基于 Spring 的应用程序的配置和部署过程,使得开发者可以更加专注于编写业务逻辑,而不用花费过多精力在配置上。 Spring Boot 框架具有以下特点和优势: 简化的配置:Spring Boot 提供了大量的自动配置,减少了开发人员在项目配置方面的工作量。它还提供了一种约定优于配置的方式,让开发者可以更专注于业务逻辑的实现。 内嵌的容器:Spring Boot 可以打包成一个独立的 JAR 文件,并且内置了 Tomcat、Jetty 或 Undertow 等容器,使得应用程序可以直接运行,而无需外部容器的支持。 自动化的依赖管理:Spring Boot 通过 Starter POMs 简化了对各种依赖库的管理,开发者只需要通过简单的依赖声明,即可引入所需的依赖库。 生产就绪:Spring Boot 提供了许多生产级别的功能,如健康检查、指标收集、外部化配置等,使得应用程序更容易部署和监控。 微服务支持:Spring Boot 对构建微服务应用程序提供了良好的支持,包括
资源推荐
资源详情
资源评论
收起资源包目录
spring系列框架之SpringBoot框架 (949个子文件)
TestController.class 3KB
YmlController2.class 2KB
StudentMapperTest.class 2KB
Student.class 2KB
Student.class 2KB
MyTask3.class 1KB
FirstFilter.class 1KB
SecondFilter.class 1KB
Grade.class 1KB
YmlController1.class 1KB
FilterConfig.class 1KB
ServletConfig.class 1KB
FirstServlet.class 1015B
LogbackController.class 1008B
SchedulingConfig.class 993B
ListenerConfig.class 942B
FirstListener.class 941B
YmlController3.class 921B
SecondServlet.class 914B
MyspringbootadminApplication.class 868B
SecondListener.class 864B
Springbootdemo4Application.class 858B
Springbootdemo8Application.class 829B
PageController.class 813B
SpringbootmybatisApplication.class 802B
Springbootdemo2Application.class 792B
Springbootdemo7Application.class 792B
Springbootdemo6Application.class 792B
SpringBootApp.class 721B
SpringbootmybatisApplicationTests.class 600B
MyspringbootadminApplicationTests.class 600B
Springbootdemo2ApplicationTests.class 590B
Springbootdemo8ApplicationTests.class 590B
Springbootdemo4ApplicationTests.class 590B
Springbootdemo7ApplicationTests.class 590B
Springbootdemo6ApplicationTests.class 590B
MyTask2.class 391B
MyTask.class 388B
StudentMapper.class 357B
mvnw.cmd 7KB
mvnw.cmd 7KB
mvnw.cmd 7KB
mvnw.cmd 7KB
mvnw.cmd 7KB
mvnw.cmd 7KB
mvnw.cmd 7KB
mvnw.cmd 7KB
mvnw.cmd 6KB
.gitignore 395B
.gitignore 395B
.gitignore 395B
.gitignore 395B
.gitignore 395B
.gitignore 395B
.gitignore 395B
.gitignore 395B
.gitignore 333B
.gitignore 219B
.gitignore 219B
.gitignore 217B
.gitignore 217B
.gitignore 217B
.gitignore 217B
.gitignore 217B
.gitignore 217B
.gitignore 217B
.gitignore 0B
index.html 3KB
page4.html 183B
page3.html 183B
page5.html 183B
page2.html 183B
page4.html 183B
page3.html 183B
page5.html 183B
page2.html 183B
page1.html 182B
page1.html 182B
error.html 172B
error.html 172B
myspringbootadmin.iml 13KB
springbootdemo6.iml 10KB
springbootmybatis.iml 9KB
springbootdemo5.iml 9KB
springbootdemo4.iml 8KB
springbootdemo2.iml 8KB
springbootdemo1.iml 8KB
springbootdemo7.iml 8KB
springbootdemo8.iml 6KB
springbootdemo3.iml 216B
springbootdemo3.iml 81B
springbootdemo7-0.0.1-SNAPSHOT.jar 16.75MB
maven-wrapper.jar 57KB
maven-wrapper.jar 57KB
maven-wrapper.jar 57KB
maven-wrapper.jar 57KB
maven-wrapper.jar 57KB
maven-wrapper.jar 57KB
maven-wrapper.jar 57KB
maven-wrapper.jar 57KB
共 949 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
童小纯
- 粉丝: 3w+
- 资源: 289
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功