关于maven-assembly-plugin,一直让我感到疑惑的是apache网站上的jar-with-dependencies example file有一个关于jarjar格式的TODO注释。
这只是一个不断被复制的代码工件,还是在示例文件中的TODO背后有什么实际的原因?
发布于 2015-09-02 02:42:32
该文档说明了以下内容
使用带有依赖项的JAR作为您的程序集插件配置的descriptorRef,以便创建一个JAR,其中包含项目的二进制输出,以及它的解压缩的依赖项。
因此,jar-with-dependencies创建了一个单独的JAR,它将包含项目的所有类文件以及依赖项的所有未打包的类文件。
我猜,"jarjar“指的是类似于Spring Boot Maven plugin does的东西:它也创建一个单独的JAR文件,但是依赖项包含在它们的原始JAR文件中,而不是解压。与汇编插件方法不同的是,这需要一个自定义的类加载器。
但是,您可能应该在Maven mailing list上问这个问题。我刚刚这样做了,如果我得到任何新的信息,我会更新这个答案。
更新
发布于 2015-09-01 23:50:28
我怀疑这指的是jarjar格式,它重新打包Java库并将它们嵌入到您自己的发行版中,从而不允许依赖。
请参阅:jarjar
在示例文件的上下文中,该示例文件包含:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
<!-- TODO: a jarjar format would be better -->
<id>jar-with-dependencies</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>true</unpack>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>我认为todo是为了表明这种特定的方法是如何完成的,但jarjar会更好。也就是说,“这是你怎么做的,但你应该用另一种方式来做”。
https://stackoverflow.com/questions/32319304
复制相似问题