如何在Maven中添加来自另一个依赖项的源代码?

时间:2011-07-09 06:13:59

标签: java spring maven

我正在使用Spring 2.0.8进行一些测试。我有以下问题,所有的源代码都是用“spring”工件下载的,但没有被mvn eclipse附加:eclipse到其他工件,例如对于“spring-aop”工件,我无法访问源代码来自Eclipse,尽管spring-2.0.8-sources.jar中存在aop包。

<properties>
    <org.springframework.version>2.0.8</org.springframework.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
</dependencies>

如果我手动将spring-2.0.8-sources.jar添加到Java Build Path中的spring-aop,那么我可以从Eclipse导航源代码,但我想知道如何告诉Maven这样做,因为每一个我添加或更改库时,我必须重复附加源操作。

更新:我最初担心配置被覆盖被证明是错误的。 m2eclipse和“mvn eclipse:eclipse”都不会覆盖对配置的手动更改。我仍然有兴趣知道是否可以告诉Maven附加来自另一个依赖项的源代码。我还有一个Nexus安装,如果这可以帮助。

2 个答案:

答案 0 :(得分:1)

如果你使用当前版本的m2eclipse aka m2e插件,你不需要再做eclipse:eclipse。只需在Eclipse中完成所有操作。您应该只需更新POM中的依赖项,右键单击项目,然后自动下载所有附加的源。

答案 1 :(得分:1)

正如@Will Iverson所说,最近的m2eclipse插件可以提前或按需自动下载源代码。 m2eclipse已经能够做很长时间了。

如果这不起作用:

  • 检查您是否有最新的插件(以及最新的Eclipse!),
  • 查看插件的配置方式,
  • 检查Eclipse的有效Web代理配置,
  • 检查~/.m2/settings.xml以查看您是否正在使用maven代理存储库
  • 如果您使用的是代理存储库,请检查存储库配置以查看它是否为源JAR提供服务。

  

如果我理解,当我添加一个依赖项时,你建议我应该做m2Maven&gt;更新依赖项,m2Maven&gt;下载JavaDoc,m2Maven&gt;下载源代码,这个操作,尽管调用“mvn eclipse:eclipse”更加不方便,但会保留我的手动更改,而不是覆盖它们。

  1. 如果你使用m2eclipse,你应该使用“mvn eclipse:eclipse”。相反,您只需使用(例如)File&gt;导入maven项目。导入&gt; Maven&gt;现有的Maven项目。

  2. 我认为这不会破坏您现有的手工创建的项目设置...假设您没有意外地将它们检入SCM或其他东西。

  3. 如果您担心丢失设置的可能性,请制作工作区的备份副本;例如cp -r ...tar cf ...

  4. Maven允许您一步直接从SCM导入。这肯定比<{1}}更方便更多 ...它为您提供了m2eclipse插件的好处。


  5.   

    问题,我认为春天来源存在并且它们被服务,但它们都是一个依赖,其他依赖没有源附件,但是它们的源是“spring”依赖。

    阿。我明白了。

    我认为你(或m2eclipse)可以做的很多。这可以说是Spring 2.0.x POM文件或依赖POM文件中的错误。当然,更高版本的Spring(2.5.x和3.0.x)没有这个问题。