maven 打包源代码

来源:互联网 发布:c语言角度转弧度 编辑:程序博客网 时间:2024/05/18 12:43

前言

maven"内置插件"中没有打包源代码的插件,所以,需要开发者配置插件。apache提供了maven-source-plugin插件用于打包源代码。


maven-source-plugin

The Source Plugin has five goals:

  • source:aggregate aggregrates sources for all modules in an aggregator project.
  • source:jar is used to bundle the main sources of the project into a jar archive.
  • source:test-jar on the other hand, is used to bundle the test sources of the project into a jar archive.
  • source:jar-no-fork is similar to jar but does not fork the build lifecycle.
  • source:test-jar-no-fork is similar to test-jar but does not fork the build lifecycle
配置
在《maven实战》一书中,配置使用的是jar-no-fork
<build><plugins><plugin><artifactId>maven-source-plugin</artifactId><version>2.1.2</version><executions><execution><goals><goal>jar-no-fork</goal></goals></execution></executions></plugin></plugins></build>



jar-no-fork与jar的区别

jar,在执行goal之前,执行generate-sources阶段,也就是说,如果,jar绑定的目标在generate-sources之后(比如verify)的话,generate-sources会执行两遍。
  • The goal is thread-safe and supports parallel builds.
  • Binds by default to the lifecycle phase: package
  • Invokes the execution of the lifecycle phase generate-sources prior to executing itself.
jar-no-fork,没有其余动作,在绑定的phase执行。原文是,
  • The goal is thread-safe and supports parallel builds.
  • Binds by default to the lifecycle phase: package.

为什么会有jar-no-fork?
临时,我也没找到它存在的理由。

参考
maven-source-plugin doc
difference between maven-source-plugin-jar-and-jar-no-fork-goal
0 0
原创粉丝点击