查看多版本JAR (MRJAR)的版本源



我试图为一些作为mrjar发布的项目附加Java 9或Java 11源代码,即jersey-container-jetty-http-3.0.2junit-platform-commons-1.4.0

查看我的~/.m2/repository中的jersey-container-jetty-http-3.0.2-sources.jar文件,没有META-INF/versions目录,标准包位置中的.java文件适用于Java 8(预模块系统)。如果我解包https://repo1.maven.org/maven2/org/glassfish/jersey/containers/jersey-container-jetty-http/3.0.2/jersey-container-jetty-http-3.0.2-sources.jar

也是这种情况这对我的调试器来说是一个大麻烦:(

我能够从https://github.com/eclipse-ee4j/jersey/releases/tag/3.0.2下载完整的源代码,它包含以下目录,源代码:

containers/jetty-http/src/main/java11

containers/jetty-http/src/main/java8

我想也许这只是一个泽西问题,但看着junit-platform-commons-1.4.0我看到一个类似的问题。我的~/.m2/repository和https://repo1.maven.org/maven2/org/junit/platform/junit-platform-commons/1.4.0/junit-platform-commons-1.4.0-sources.jar都不包含任何java 9+版本的代码,但发布JAR包含/META-INF/versions/9/org/junit/platform/commons/util/ModuleUtils.class

所以我的问题是:Maven是否包含多个Java版本的源代码?如果是,Java 9+源文件位于哪里?

maven-source-plugin:jar目标:

[…]将所有的源代码打包到一个jar归档文件中。

没有明确提到MRJAR,但是它有一个参数:

<表类> 名称 描述 <includes> 要包含的文件列表。指定为文件集模式,这些模式相对于其内容打包到JAR中的输入目录。

最新更新