【问题标题】:Get sources of a snapshot dependency on Eclipse获取 Eclipse 上的快照依赖源
【发布时间】:2011-04-03 20:10:22
【问题描述】:

有些事情让我很困扰... 在一个有很多依赖的大项目上,其中一些在 Maven2 中被设置为 SNAPSHOT。

问题是,如果不加载项目或将依赖项修复到最后一个版本,我似乎无法通过 Eclipse 获取源代码。 为了调试,真的很烦我……

编辑

这是我在 eclipse maven 控制台中得到的:

26/08/10 11:31:46 CEST: Downloading http://repo-maven/archiva/repository/snapshots/com/blabla/1.1-SNAPSHOT/blabla-1.1-20100824.213711-80-javadoc.jar
26/08/10 11:31:47 CEST: Could not download sources for com.blabla:blabla:1.1-20100824.213711-80

在档案中,我可以看到我想在 Eclipse 中检索的已部署的东西...

Repository   snapshots
Group ID  com.blabla
Artifact ID  blabla
Version  1.1-20100824.213711-80
Packaging  jar
Parent  com.blabla bla 1.1-SNAPSHOT (View)
Other Versions  1.1-20100824.213535-79

我可以用我的浏览器下载这个工件的源代码,但不能在 Eclipse 中下载...有什么想法吗?

【问题讨论】:

  • 很奇怪。能不能在命令行运行mvn dependency:sources看能不能复现。如果可以的话,试试-X -e,看看你能不能得到有用的信息。

标签: java eclipse maven-2 jakarta-ee


【解决方案1】:

问题是,如果不加载项目或将依赖项修复到最后一个版本,我似乎无法通过 Eclipse 获取源代码。为了调试,真是烦死我了……

嗯,这些模块可能不会将源 JAR 发布为“常规”构建过程的一部分(即在发布之外)。如果这些模块在您的控制之下(这是我的理解),配置 Maven Source Plugin 为它们生成源 JAR 并将它们部署在您的公司存储库中应该可以解决问题。来自Usage 页面:

随工件一起安装源代码

有两种方法可以做到这一点。你可以 将此插件绑定到一个阶段或 您可以将其添加到配置文件中。目标 来源:jar-no-fork 和 来源:test-jar-no-fork 是首选 用于将目标绑定到构建 生命周期。

使用阶段绑定安装源代码

以下是您将如何配置 在你的 pom.xml 中运行插件 在验证阶段自动:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.1.2</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>

我们在这里使用验证阶段 因为它是即将到来的阶段 在安装阶段之前,从而使 确保源 jar 已 在安装之前创建 地点。

使用配置文件安装源代码

如果你想安装一个 jar 资源以及您的工件 在发布过程中,您可以 将此添加到您的 pom.xml 文件中:

<project>
  ...
  <profiles>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.1.2</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
  ...
</project>

使用配置文件可能是一个好主意,这样构建源 JAR 将仅由在 CI 服务器级别而不是在开发人员计算机上运行的构建来完成。

【讨论】:

  • 谢谢,这不是我能控制的,但会和建筑师谈谈;)
猜你喜欢
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
  • 2013-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-16
  • 2017-02-22
相关资源
最近更新 更多