/*
* 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();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
前后端分离的资讯管理系统 (101个子文件)
UserController.class 5KB
User.class 5KB
UserServiceImpl.class 4KB
CategoryServiceImpl.class 4KB
RoleController.class 4KB
Article.class 4KB
ResultCode.class 4KB
RoleServiceImpl.class 4KB
ArticleServiceImpl.class 3KB
CategoryController.class 3KB
CommentServiceImpl.class 3KB
Category.class 3KB
ArticleController.class 3KB
Comment.class 3KB
CommentController.class 3KB
Result.class 2KB
Swagger2Config.class 2KB
HelloController.class 2KB
GlobalExceptionHandler.class 2KB
DateJsonSerializer.class 1KB
Role.class 1KB
ExceptionUtil.class 1KB
UserService.class 1KB
ServiceException.class 1KB
ArticleService.class 1KB
CommentService.class 1010B
CategoryService.class 968B
RoleService.class 951B
CmsApplication.class 724B
CommentDao.class 638B
CmsApplicationTests.class 522B
CategoryDao.class 443B
UserDao.class 423B
RoleDao.class 419B
ArticleDao.class 322B
.classpath 1KB
.DS_Store 10KB
.DS_Store 10KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.gitignore 395B
maven-wrapper.jar 50KB
MavenWrapperDownloader.java 5KB
UserController.java 4KB
User.java 4KB
UserServiceImpl.java 3KB
RoleController.java 3KB
Article.java 3KB
CategoryServiceImpl.java 3KB
RoleServiceImpl.java 3KB
CategoryController.java 2KB
ArticleController.java 2KB
Category.java 2KB
ArticleServiceImpl.java 2KB
Comment.java 2KB
Result.java 2KB
ResultCode.java 2KB
CommentController.java 2KB
CommentServiceImpl.java 2KB
Swagger2Config.java 1KB
UserService.java 985B
Role.java 943B
HelloController.java 896B
ArticleService.java 891B
CategoryService.java 870B
GlobalExceptionHandler.java 738B
RoleService.java 729B
DateJsonSerializer.java 728B
ServiceException.java 699B
CommentService.java 679B
ExceptionUtil.java 519B
CommentDao.java 352B
CmsApplication.java 300B
CategoryDao.java 250B
UserDao.java 230B
RoleDao.java 226B
CmsApplicationTests.java 202B
ArticleDao.java 197B
MANIFEST.MF 277B
org.eclipse.jdt.core.prefs 553B
org.eclipse.core.resources.prefs 214B
org.eclipse.m2e.core.prefs 90B
org.eclipse.jdt.apt.core.prefs 69B
org.springframework.ide.eclipse.prefs 65B
.project 1KB
application.properties 558B
application.properties 558B
maven-wrapper.properties 218B
pom.properties 214B
pom.xml 2KB
pom.xml 2KB
共 101 条
- 1
- 2
登登登__
- 粉丝: 157
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0