使用Maven下载依赖包的时候, 默认是不会下载源码包的,但是有时候, 需要Debug代码,或是看看依赖项的源码的写法, 就需要下载源码包了。
这里以 Apache 的 commons-text 为例, 在Maven中添加如下依赖配置:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.10.0</version>
</dependency>
在命令行中切换到pom.xml 的路径, 使用 mvn compile
编译项目的时候会下载依赖项, 下载完成后,在本地库的文件中可以看到, 依赖包的目录中是不包含源码文件的。如下图所示:
但是如果是在Eclipse中,使用Maven更新项目的时候,会把源码包下载下来。
Eclipse 中Maven更新项目的方式是: 右键单击项目, 选择Maven , 选择Update Project …, 如下图:
执行完成之后的目录结果如下:
可以看到, 在Eclipse 中使用Maven 更新项目之后, 源码包被下载下来了。
Eclipse 默认下载源码包的原因
Eclipse 中为什么会默认下载源码包呢? 从Eclipse 中Maven的设置就可以看出端倪。
选择Windows菜单, 点击 “Preference”, 在左边导航栏找到Maven , 可以看到一个选项被勾选了: Download Artifact Sources (下载构建的源码)。如下图所示:
从这里可以得到一些启示, 是否下载源码包, 是可以通过Maven的命令选项进行控制的。
设置下载源码的方式
设置下载源码包, 可以又多种方式。
- Maven命令行选项
mvn dependency:sources
mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true
上面的两个命令都可以实现下载项目的所有依赖包及其源码包。
- Eclipse 设置下载依赖包
在 Windows > Preferences > Maven, 勾选 Download Artifact Sources ,则在pom.xml添加依赖之后, 通过Eclipse触发下载依赖包的同时,也会将源码包下载下来。
- 配置 settings.xml
还可以通过配置 Maven的设置文件 settings.xml, 在该文件中添加如下内容:
<profiles>
<profile>
<id>downloadSources</id>
<properties>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>downloadSources</activeProfile>
</activeProfiles>
完整的文件类似:
下载某个依赖的源码包
下载项目的所有依赖包,对于本地空间来说,有时候有点浪费, 毕竟不是每个源码包都会使用, 如果只想下载某一个依赖包的源码包要怎么操作呢?
Eclipse 中提供了这个功能。
找到项目的Maven Dependecies , 选取对应的jar,右键单击 Maven > download sources, 如下图示: