gradle插件Java_插件jar中的Gradle插件复制文件

我正在创建我的第一个gradle插件 . 我正在尝试将文件从分发jar复制到我在项目中创建的目录中 . 虽然文件存在于jar中,但我无法将其复制到目录中 .

这是我的任务代码:

import org.gradle.api.DefaultTask;

import org.gradle.api.tasks.TaskAction;

class InitTask extends DefaultTask {

File baseDir;

private void copyEnvironment(File environments) {

String resource = getClass().getResource("/environments/development.properties").getFile();

File input = new File(resource);

File output = new File(environments, "development.properties");

try {

copyFile(input, output);

}

catch (IOException e) {

e.printStackTrace();

}

}

void copyFile(File sourceFile, File destFile) {

destFile << sourceFile.text

}

@TaskAction

void createDirectories() {

logger.info "Creating directory."

File environments = new File(baseDir, "environments");

File scripts = new File(baseDir, "scripts");

File drivers = new File(baseDir, "drivers");

[environments, scripts, drivers].each {

it.mkdirs();

}

copyEnvironment(environments);

logger.info "Directory created at '${baseDir.absolutePath}'."

}

}

这是我得到的错误:

:init

java.io.FileNotFoundException: file:/path-to-jar/MyJar.jar!/environments/development.properties (No such file or directory)

at java.io.FileInputStream.open(Native Method)

at java.io.FileInputStream.(FileInputStream.java:120)

at groovy.util.CharsetToolkit.(CharsetToolkit.java:69)

at org.codehaus.groovy.runtime.DefaultGroovyMethods.newReader(DefaultGroovyMethods.java:15706)

at org.codehaus.groovy.runtime.DefaultGroovyMethods.getText(DefaultGroovyMethods.java:14754)

at org.codehaus.groovy.runtime.dgm$352.doMethodInvoke(Unknown Source)

at org.codehaus.groovy.reflection.GeneratedMetaMethod$Proxy.doMethodInvoke(GeneratedMetaMethod.java:70)

at groovy.lang.MetaClassImpl$GetBeanMethodMetaProperty.getProperty(MetaClassImpl.java:3465)

at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:61)

at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227)

at br.com.smartcoders.migration.tasks.InitTask.copyFile(InitTask.groovy:29)

需要强调的是,development.properties位于MyJar.jar内的环境目录中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值