以下结构
src
service
service1
Service.java
Service.properties
我希望gradle生成的输出为
classes
service
service1
Service.class
Service.properties
所以,我需要在构建之后将文件(.properties)保存在类的同一目录中,但是gradle将文件.properties(resources)复制到另一个目录
我该怎么办?
答案 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来完成此操作。