我正在尝试从 Ant 构建迁移到 Gradle 构建。我正在使用 Shadow ( com.github.jengelman.gradle.plugins:shadow:5.2.0
) 来构建我的项目。我的项目包括 3 个 Apache Axiom 依赖项:
implementation group: 'org.apache.ws.commons.axiom', name: 'axiom-api', version: '1.2.13'
implementation group: 'org.apache.ws.commons.axiom', name: 'axiom-dom', version: '1.2.13'
implementation group: 'org.apache.ws.commons.axiom', name: 'axiom-impl', version: '1.2.13'
Shadow 配置如下所示:
shadowJar {
baseName = project.name
classifier = ''
archiveVersion = ''
exclude "META-INF/*.SF"
exclude "META-INF/*.DSA"
exclude "META-INF/*.RSA"
}
当这些 jar 使用我的 Ant 项目构建时,我最终在 jar 中有 2 个axiom.xml
文件。META-INF
两者是不同的。
当我使用 Shadow 构建时,我最终得到了两个axiom.xml
文件中的后者。第一个文件被后者覆盖。
这会导致运行时错误。如何让 Shadow 包含重复文件名的文件,而不仅仅是覆盖它们?