我正在尝试打包一个由我的代码 + 依赖项组成的阴影 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>
根标签中,但这也不起作用。他们必须在根文件夹中吗?我可以在阴影过程中将它们移动到不同的文件夹吗?