我正在使用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>
答案 0 :(得分:6)
最简单的解决方案是使用预定义的描述符src,或者最好使用预定义的描述符project:
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
<descriptorRef>src</descriptorRef>
</descriptorRefs>
或其他选项如下:
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
<descriptorRef>project</descriptorRef>
</descriptorRefs>
答案 1 :(得分:4)
您是否选择将二进制文件和源代码作为胖罐分发?通常,二进制文件和源文件一起分发,但作为单独的jar文件。 Maven Central上的许多项目都在使用这种方法,而Nexus和Artifactory等存储库也支持这种方法。如果您选择此选项,则maven-source-plugin是您的朋友。来自documentation:
<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>
然后执行mvn source:jar
。请参阅configuration options的网页。