【发布时间】:2013-01-15 01:33:18
【问题描述】:
我正在尝试打包一个由我的代码 + 依赖项组成的阴影 jar。我能够很好地打包所有内容,但是由于我使用的是 DataNucleus(datanucleus-core、datanucleus-api-jdo、datanucleus-rdbms),因此它们的 plugin.xml 位于其根目录中。我尝试使用带有阴影的 XmlAppendingTransformer,但由于这些 xml 的根元素只是 <plugin>,因此转换器将所有 <extension> 元素合并为一个巨大的 <plugin> 标签,并且在运行时 DataNucleus 类加载器无法找到正确的插件。所以我的问题是:
1) 将所有依赖项打包到 1 个 jar 中是一个好习惯吗?或者我应该将依赖项复制到一个文件夹中并在运行时将该文件夹包含在类路径中?
2) 如果我想用我的jar 打包DataNucleus,如何处理多个plugin.xml 的?我尝试将它们放在 <plugins> 根标签中,但这也不起作用。它们必须在根文件夹中吗?我可以在阴影过程中将它们移动到不同的文件夹吗?
【问题讨论】:
标签: maven datanucleus maven-shade-plugin