将gradle构建中的文件(.properties文件)包含在.class的同一目录中

时间:2015-01-22 13:39:36

标签: gradle build.gradle

以下结构

src
  service
     service1
        Service.java
        Service.properties

我希望gradle生成的输出为

classes
   service
        service1
          Service.class
          Service.properties

所以,我需要在构建之后将文件(.properties)保存在类的同一目录中,但是gradle将文件.properties(resources)复制到另一个目录

我该怎么办?

1 个答案:

答案 0 :(得分:2)

我假设您正在尝试将它们放在那里,以便可以从类路径加载它们?使它们可用于类加载器的最佳方法是将它们放入src / main / resources中,这是standard directory layout的一部分。 Gradle会在那里找到它们并将它们放在jar的根目录下(默认情况下我认为它忽略了src / main / java中的属性文件)。

将java文件移动到src / main / java也是一件好事。使用标准目录布局是一种约定,可以帮助其他开发人员理解代码。它还允许您使用开箱即用的某些工具,配置较少,因为这些工具可以对事物的位置做出假设。

所以新结构就像:

service1-project
    src
        main
            java
                service1.java
            resources
                service.properties

如果您使用标准目录布局,我认为您将实现您尝试执行的操作的最终结果(这实际上是在Java中加载属性文件)。如果由于某种原因你必须避免标准目录布局,那么你必须开始进行自定义配置(使用非标准项目布局的缺点)。在Gradle中,您应该可以通过挂钩Java插件processSourceSetResources target来完成此操作。