我遇到了一个问题,我在项目中包含了一些第三方罐子,而第三方罐子在jar文件的根目录中都有相同名称的配置文件.当我使用时执行mvn package构造一个jar(用于部署)时maven-assembly-plugin,生成的jar文件只在根目录中包含一个配置文件,并且它只包含其中一个配置文件的内容.然后,当我从"超级jar"运行我的应用程序时,由于缺少配置而发生错误.我认为使用maven-shade-plugin会有所帮助,因为它似乎支持连接这些文件,但这种方法不起作用(冲突的文件没有附加,而且我收到了关于以前没有发生的重复导入apache commons库的新警告).
以最自动和可维护的方式处理此问题的最佳方法是什么?
maven-shade-plugin确实可以帮助解决这个问题,但是您需要正确配置它以使用资源转换器:请参阅https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html
有专门的转换器可用于常见的 java 东西(比如 SPI 文件META-INF/services和清单文件)只需要启用,以及更通用的转换器需要被确切地告知要做什么。
maven-assembly-plugin也可以做类似的事情,但它需要编写您自己的程序集描述符。请参阅类似问题中的答案。
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |