使用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 编译项目的时候会下载依赖项, 下载完成后,在本地库的文件中可以看到, 依赖包的目录中是不包含源码文件的。如下图所示:

mvvm依赖 android mvn 下载依赖包_maven

但是如果是在Eclipse中,使用Maven更新项目的时候,会把源码包下载下来。

Eclipse 中Maven更新项目的方式是: 右键单击项目, 选择Maven , 选择Update Project …, 如下图:

mvvm依赖 android mvn 下载依赖包_源码包_02

执行完成之后的目录结果如下:

mvvm依赖 android mvn 下载依赖包_eclipse_03

可以看到, 在Eclipse 中使用Maven 更新项目之后, 源码包被下载下来了。

Eclipse 默认下载源码包的原因

Eclipse 中为什么会默认下载源码包呢? 从Eclipse 中Maven的设置就可以看出端倪。

选择Windows菜单, 点击 “Preference”, 在左边导航栏找到Maven , 可以看到一个选项被勾选了: Download Artifact Sources (下载构建的源码)。如下图所示:

mvvm依赖 android mvn 下载依赖包_mvvm依赖 android_04

从这里可以得到一些启示, 是否下载源码包, 是可以通过Maven的命令选项进行控制的。

设置下载源码的方式

设置下载源码包, 可以又多种方式。

  1. Maven命令行选项

mvn dependency:sources

mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true

上面的两个命令都可以实现下载项目的所有依赖包及其源码包。

  1. Eclipse 设置下载依赖包

在 Windows > Preferences > Maven, 勾选 Download Artifact Sources ,则在pom.xml添加依赖之后, 通过Eclipse触发下载依赖包的同时,也会将源码包下载下来。

  1. 配置 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>

完整的文件类似:

mvvm依赖 android mvn 下载依赖包_eclipse_05

下载某个依赖的源码包

下载项目的所有依赖包,对于本地空间来说,有时候有点浪费, 毕竟不是每个源码包都会使用, 如果只想下载某一个依赖包的源码包要怎么操作呢?

Eclipse 中提供了这个功能。

找到项目的Maven Dependecies , 选取对应的jar,右键单击 Maven > download sources, 如下图示:

mvvm依赖 android mvn 下载依赖包_maven_06