maven-source-plugin
源码在哪儿?
1. 介绍
咱们在 IDEA 中查看 Maven 包的代码时,右上角会有一个下载源码,这样咱们就能够从仓库中获取到 jar 包对应的源码。
要获取源码,首先要在上传构建 (我的项目) 到仓库的时候同时上传 source(源码)文件。
上面是 Maven 官网对于该插件的形容:
The Source Plugin creates a jar archive of the source files of the current project. The jar file is, by default, created in the project’s target directory.
大抵意思就是创立一个蕴含以后我的项目源码的 jar 压缩文件,默认状况下,这个 jar 压缩文件创立在 target 目录下
提醒:从插件的 3.0.0 版开始,所有能够通过命令行应用的属性都基于以下架构 maven.source.* 命名
上面是该插件所蕴含的 goal:
- 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 中的 fork
是什么?
true 意味着它将创立(fork)一个新的 JVM
来运行编译器。这有点慢,但隔离更好。特地是能够指定一个不同于 Maven 启动的 JVM
2. 怎么应用
2.1 创立 maven 我的项目 / 模块
第一步当然是搭建一个 maven 的我的项目或者模块,这里就不必过多演示了,大家都会
2.2 pom 中增加插件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.0</version>
<!-- 绑定 source 插件到 Maven 的生命周期, 并在生命周期后执行绑定的 source 的 goal -->
<executions>
<execution>
<!-- 绑定 source 插件到 Maven 的生命周期 -->
<phase>compile</phase>
<!-- 在生命周期后执行绑定的 source 插件的 goals -->
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
下面截取的一段定义就是配置 maven-source-plugin 插件,并绑定 goal- jar-no-fork
到 default 生命周期的 compile phase, 这样咱们指定 paase 的执行就能够执行插件的 goal
当初咱们来试一下该插件,咱们能够在 terminal 中切换到该我的项目下,而后执行 mvn compile
看成果:
如果咱们没有绑定到生命周期的某一个 phase 而想要执行这个插件怎么做呢,就能够间接应用 goal 而不是 phase
来构建。
例如,咱们把下面的 exxcutions 节点下所有的内容正文掉,而后在命令行执行 mvn source:jar-no-fork 也能够失去 source 打包后的文件
3. 应用倡议
- 如果在多我的项目的构建中,maven-source-plugin 放在顶层的 pom 中是不会起作用的,须要放到具体的某一个我的项目中
- 应用了该插件,在 deploy 到近程仓库后也会带上该项目标 source 文件