一、下载source
在使用第三方组件(jar)时,很多时候需要下载源码进行分析。我们可以通过maven来完成。
1、命令行:
mvn dependency:sources
mvn dependency:resolve -Dclassifier=javadoc
mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true
#第一个命令会尝试下载POM文件中每一项依赖的源代码(如果能从仓库中找到的话)
#第二个命令会尝试下载POM文件中每一项依赖的JavaDoc(如果能从仓库中找到的话)
2、配置setting.xml:
<profiles>
<profile>
<id>downloadSources</id>
<properties>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>downloadSources</activeProfile>
</activeProfiles>
3、eclipse中配置:
或者通过一个插件:Java Source Attacher,该插件官网已经打不开了,可以从这里下载:https://pan.baidu.com/s/18vzmr2gStD7tU58QfmnJ8g
然后,将该插件的jar包放到eclipse的安装目录的dropins下,重启eclipse即可。
说明:以上几种方式本质是一致的,但前提是组件上传方在发布时把源码包发不到了仓库中。如果没有发布,那么是下载不下来的,只能通过反编译的手段获取了。
二、上传source
可以借助maven-source-plugin这个插件,使用 maven 生成 jar 的同时 生成 sources 包
<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>
- 执行 mvn install,maven会自动将source install到repository 。
- 执行 mvn deploy,maven会自动将source deploy到remote-repository 。
- 执行 mvn source:jar,单独打包源码。