/*
* 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();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
design-pattern-demo
共369个文件
xml:141个
java:130个
class:78个
需积分: 0 1 下载量 106 浏览量
2024-03-04
10:28:32
上传
评论
收藏 342KB ZIP 举报
温馨提示
design-pattern-demo
资源推荐
资源详情
资源评论
收起资源包目录
design-pattern-demo (369个子文件)
VehicleSplit.class 2KB
DataSplitTemplate.class 2KB
Vehicle.class 2KB
DriverSplit.class 2KB
MyCallable.class 2KB
FamilyAggregate$NameIterator.class 2KB
FamilyAggregate$NameIterator.class 2KB
Cinema.class 2KB
IncreaseNumRunnable.class 1KB
Consumer.class 1KB
TicketSell.class 1KB
ResponsibilityClient.class 1KB
ResponsibilityClient.class 1KB
TicketSell2.class 1KB
IteratorClient.class 1KB
IteratorClient.class 1KB
ArticleSubject.class 1KB
ArticleSubject.class 1KB
Driver.class 1KB
MainChargeHandler.class 1KB
MainChargeHandler.class 1KB
LeaderHandler.class 1KB
LeaderHandler.class 1KB
ABCLock.class 1KB
Permission.class 1KB
Permission.class 1KB
FamilyAggregate.class 1KB
FamilyAggregate.class 1KB
Test.class 1KB
PlanOrderTbpCalcDeleteEventManager.class 1KB
StrategyClient.class 1KB
StrategyClient.class 1KB
TemplateClient.class 1KB
PlanOrderGrdAllEventManager.class 1KB
PlanOrderGrdSlEventManager.class 1KB
ABCLock$ThreadC.class 1KB
CinemaSeat.class 1KB
ABCLock$ThreadB.class 1KB
ABCLock$ThreadA.class 1KB
WorkTemplate.class 1KB
AbstractPlanOrderEventManager.class 1021B
ManagerHandler.class 1020B
ManagerHandler.class 1020B
SubscriberClient.class 1019B
SubscriberClient.class 1019B
TicketSellDemo.class 1016B
WorkerTypeTwo.class 973B
FansObserver.class 908B
FansObserver.class 908B
TicketSellDemo2.class 892B
MyRunnable.class 879B
TemplateClient.class 826B
WorkerTypeOne.class 821B
VehicleStrategy.class 815B
VehicleStrategy.class 815B
DriverStrategy.class 809B
DriverStrategy.class 809B
IncreaseNum.class 785B
SfDemoApplication.class 749B
MyThread.class 734B
DemoApplication.class 733B
StrategyContext.class 720B
StrategyContext.class 720B
ProcessHandler.class 634B
ProcessHandler.class 634B
DemoApplicationTests.class 531B
DemoApplicationTests.class 531B
Subject.class 323B
Subject.class 323B
IPlanOrderEventManager.class 318B
Aggregate.class 276B
Aggregate.class 276B
Strategy.class 228B
Strategy.class 228B
Observer.class 203B
Observer.class 203B
Iterator.class 188B
Iterator.class 188B
mvnw.cmd 6KB
mvnw.cmd 6KB
.gitignore 395B
.gitignore 395B
.gitignore 184B
.gitignore 184B
.gitignore 0B
demo.iml 8KB
demo.iml 8KB
designPattern.iml 433B
maven-wrapper.jar 50KB
maven-wrapper.jar 50KB
MavenWrapperDownloader.java 5KB
MavenWrapperDownloader.java 5KB
ABCLock.java 2KB
IncreaseNum.java 2KB
CinemaSeat.java 2KB
TicketSell.java 1KB
TicketSell2.java 1KB
FamilyAggregate.java 1KB
FamilyAggregate.java 1KB
Vehicle.java 1KB
共 369 条
- 1
- 2
- 3
- 4
资源评论
001null
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功