java - 如何使用基本 Gradle 项目正确引用资源?

标签 java eclipse gradle resources

我有以下(粗略的)Gradle 项目布局(在 Eclipse 项目中):

src/
 main/
  java/
   example/
    TextTransformer.java
  resources/
    transformMe.txt

 build.gradle

粗略地说,build.gradle 看起来像

apply plugin: 'java'
apply plugin: 'eclipse'

sourceCompatibility = 1.7
targetCompatibility = 1.7
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Some API',
                   'Implementation-Version': version
    }
}

repositories {
    mavenCentral()
}

dependencies {
    ...
}

uploadArchives {
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
}

在 TextTransform.java 中,我有一些看起来像:

    Reader  reader      = new FileReader("/transformMe.txt");
    Writer  writer      = new StringWriter();
    new UglifyJsProcessor().process(reader, writer);
    String  str         = writer.toString();

而且我无法读取transformMe.txt。我还尝试了 FileReader("transfomMe.txt"); 和许多其他变体。我做错了什么?

最佳答案

听起来您只是希望能够从 JAR 资源读取文件:

InputStream input = ClassLoader.class.getResourceAsStream("/transformMe.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(input));

new UglifyJsProcessor().process(...);

关于java - 如何使用基本 Gradle 项目正确引用资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34144256/

相关文章:

java - Gradle:复制子项目资源

jenkins - Jenkins 上的Gradle怪异错误

java - 将英尺和英寸转换为厘米的奇怪问题,反之亦然

JavaFX + GraalVM + Gluon

java - 线程和重绘()

eclipse - 如何在 Flash Builder 4 中调试后自动返回 Flash 透视图

android - Eclipse 中的 AVD 在模拟器中不起作用?

java - 需要找到带有订单和订单详细信息的大代码

android - 构建发行版时更改常量值

java - 我可以运行从 gradle 扩展特定父类(super class)的所有测试吗?