java uri()方法,Java URI.relativize方法代码示例

import java.net.URI; //导入方法依赖的package包/类

@TaskAction

public void doJsHint() {

RhinoWorkerHandleFactory handleFactory = new DefaultRhinoWorkerHandleFactory(getWorkerProcessBuilderFactory());

LogLevel logLevel = getProject().getGradle().getStartParameter().getLogLevel();

JsHintProtocol worker = handleFactory.create(getRhinoClasspath(), JsHintProtocol.class, JsHintWorker.class, logLevel, getProject().getProjectDir());

JsHintSpec spec = new JsHintSpec();

spec.setSource(getSource().getFiles()); // flatten because we need to serialize

spec.setEncoding(getEncoding());

spec.setJsHint(getJsHint().getSingleFile());

JsHintResult result = worker.process(spec);

setDidWork(true);

// TODO - this is all terribly lame. We need some proper reporting here (which means implementing Reporting).

Logger logger = getLogger();

boolean anyErrors = false;

Map> reportData = new LinkedHashMap>(result.getResults().size());

for (Map.Entry> fileEntry: result.getResults().entrySet()) {

File file = fileEntry.getKey();

Map data = fileEntry.getValue();

reportData.put(file.getAbsolutePath(), data);

if (data.containsKey("errors")) {

anyErrors = true;

URI projectDirUri = getProject().getProjectDir().toURI();

@SuppressWarnings("unchecked") Map errors = (Map) data.get("errors");

if (!errors.isEmpty()) {

URI relativePath = projectDirUri.relativize(file.toURI());

logger.warn("JsHint errors for file: {}", relativePath.getPath());

for (Map.Entry errorEntry : errors.entrySet()) {

@SuppressWarnings("unchecked") Map error = (Map) errorEntry.getValue();

int line = Float.valueOf(error.get("line").toString()).intValue();

int character = Float.valueOf(error.get("character").toString()).intValue();

String reason = error.get("reason").toString();

logger.warn(" {}:{} > {}", new Object[] {line, character, reason});

}

}

}

}

File jsonReportFile = getJsonReport();

if (jsonReportFile != null) {

try {

FileWriter reportWriter = new FileWriter(jsonReportFile);

new GsonBuilder().setPrettyPrinting().create().toJson(reportData, reportWriter);

reportWriter.close();

} catch (IOException e) {

throw new UncheckedIOException(e);

}

}

if (anyErrors) {

throw new TaskExecutionException(this, new GradleException("JsHint detected errors"));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值