Joh*_*nes 11 java maven maven-assembly-plugin
我正在使用Maven程序集插件将我的Java项目的二进制文件打包成一个胖jar(带有jar-with-dependencies描述符).这非常有效.
问题:如何在编译的类文件旁边包含项目的源文件?我试着查看Maven文档以了解如何执行此操作但找不到任何内容.
谢谢!
我的pom.xml看起来像这样:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>${pom.artifactId}-${pom.version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<outputDirectory>${project.basedir}/bin/</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
最简单的解决方案是使用预定义的描述符src,或者使用预定义的描述符项目可能更好:
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
<descriptorRef>src</descriptorRef>
</descriptorRefs>
Run Code Online (Sandbox Code Playgroud)
或者其他选择是这样的:
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
<descriptorRef>project</descriptorRef>
</descriptorRefs>
Run Code Online (Sandbox Code Playgroud)
您选择将二进制文件和源代码作为 fat jar 分发是一个特定的要求吗?通常,二进制文件和源文件一起分发,但作为单独的 jar 文件分发。Maven Central 上的许多项目都在使用这种方法,Nexus 和 Artifactory 等存储库也支持这种方法。如果您选择此选项,maven-source-plugin就是您的朋友。从文档中:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
然后执行mvn source:jar. 请参阅网页了解配置选项。
| 归档时间: |
|
| 查看次数: |
5849 次 |
| 最近记录: |