Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将gradle builld中的文件(.properties文件)包含到.class的同一目录中_Gradle_Build.gradle - Fatal编程技术网

将gradle builld中的文件(.properties文件)包含到.class的同一目录中

将gradle builld中的文件(.properties文件)包含到.class的同一目录中,gradle,build.gradle,Gradle,Build.gradle,以下结构 src service service1 Service.java Service.properties 我希望gradle生成的输出是 classes service service1 Service.class Service.properties 因此,我需要在生成后将文件(.properties)保存在类的同一目录中,但梯度将文件.properties(参考资料)复制

以下结构

src
  service
     service1
        Service.java
        Service.properties
我希望gradle生成的输出是

classes
   service
        service1
          Service.class
          Service.properties
因此,我需要在生成后将文件(.properties)保存在类的同一目录中,但梯度将文件.properties(参考资料)复制到另一个目录中


我该怎么做呢?

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

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

因此,新结构将如下所示:

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

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

消息包位于同一个包中。这并没有回答op的问题。