繁体   English   中英

在gradle中创建jar时如何覆盖文件

[英]How to override files when creating a jar in gradle

我们有一个Java项目,在src / main / resources下有一些默认配置,而在project_root / configDeploy下有覆盖

对于我们的映射jar,我们要复制两个配置,但允许config / deploy文件覆盖资源中的默认值。 因此,我们可以在资源中使用myconf.xml,在部署中使用myconf.xml,但是生成的映射胖罐仅具有myconf.xml。

我尝试了两种不同的方法,尝试进行部署复制并覆盖资源conf:

from 'src/main/resources'
from 'conf/deploy'

但这会在jar中添加两个文件,因此无法正常工作

然后,我尝试仅从src / main / resources中添加不在conf / deploy中的文件,例如:

into('conf'){
    from{
        'src/main/resources'
    }
    exclude{file('deploy/conf/')}
}
into('conf'){
   from{
       'deploy/conf'
   }
}

但这是行不通的,因此资源中的所有conf都不是副本。 所以问题是,如果我有两个包含文件的文件夹,其中一些文件具有相同的名称,如何将它们的文件包含在jar中,以便从两个文件夹中获取文件,但是对于两个文件夹中的文件,我只能在第二个文件夹中获取版本。

谢谢你的帮助!

为了避免JAR中出现重复文件,您可以在任务上将重复策略设置为EXCLUDE

duplicatesStrategy = DuplicatesStrategy.EXCLUDE

这将导致随后添加文件的尝试被忽略。 因此,如果您希望“ deploy / conf”中的文件优先,则应首先定义该副本规范。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM