栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

jasperreports_extension.properties被maven程序集插件覆盖

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jasperreports_extension.properties被maven程序集插件覆盖

根据您的问题,我假设您有一个名为的文件

jasperreports_extension.properties
,位于您项目的内部
src/main/resources
。因为您
jasperreports
对此有依赖性,所以碰巧
jasperreports_extension.properties
在类路径的根上有一个调用的资源,因此在制作时,一个将覆盖另一个
jar-with-dependencies

要解决此问题,您应该删除

maven-assembly-plugin
和使用
maven-shade-plugin
。这个插件提供了一个开箱即用的转换器,该转换器能够将两个属性文件合并在一起:通过合并,我的意思是该文件之一附加到另一个属性的末尾:

有些jar包含具有相同文件名的其他资源(例如属性文件)。为避免覆盖,您可以选择通过将它们的内容附加到一个文件中来合并它们。

在这种情况下,示例配置为:

<plugin>  <artifactId>maven-shade-plugin</artifactId>  <version>2.4.3</version>  <executions>    <execution>      <phase>package</phase>      <goals>        <goal>shade</goal>      </goals>      <configuration>        <transformers>          <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>jasperreports_extension.properties</resource>          </transformer>          <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.test.sample.MainClass</mainClass>          </transformer>        </transformers>        <createDependencyReducedPom>false</createDependencyReducedPom>      </configuration>    </execution>  </executions></plugin>

这将产生最终的胖JAR,其中的内容

jasperreports_extension.properties
将是您文件的内容,以及来自依赖项的文件。

另外,

MANIFEST
由于我们向插件指定了哪个类是主类,因此它也将是正确的。


附带说明,当您制作胖JAR时,

maven-assembly-plugin
仅提供基本支持。从他们的主页:

如果您的项目想要将工件打包在uber-jar中,则Assembly插件仅提供基本支持。要进行更多控制,请使用Maven Shade插件。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/569504.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号