我试图为一些作为mrjar发布的项目附加Java 9或Java 11源代码,即jersey-container-jetty-http-3.0.2
和junit-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中的输入目录。