【问题标题】:Downloading source using Maven使用 Maven 下载源代码
【发布时间】:2026-01-04 06:30:01
【问题描述】:

我正在尝试查找特定示例项目的源代码。我能找到的最多的是一个POM 文件,它位于此处:http://search.maven.org/#artifactdetails%7Corg.atmosphere%7Catmosphere-redis-demo%7C2.0.1%7Cwar

可以使用 maven 来提取此示例项目的源代码以便我查看它吗? Java 工具的新手,不确定它是否是正确的工具。如果您没有源代码,POM 有什么用?如果可以使用 Maven 拉取源,那么命令行是什么?

【问题讨论】:

  • 也许你应该重新表述你的问题。看来你想知道源代码在哪里作为maven链接(也许)
  • 不确定这里发生了什么,但看起来这个特定项目除了 POM 之外没有任何源代码。 github.com/Atmosphere/atmosphere-samples/tree/…

标签: java scala maven pom.xml


【解决方案1】:

正如 Christopher Martin 所说,您所指的 atmosphere-redis-demo 的 WAR 文件是示例的一部分:

https://github.com/Atmosphere/atmosphere-samples/tree/9d9f8c275fac3193cd710a937705583e0054f059/extensions-samples/redis

它只有一个 POM 文件,它定义了一个覆盖层,即在构建 atmosphere-redis-demo 时,另一个 WAR(jersey-pubsub WAR)覆盖在最终 WAR 之上。

jersey-pubsub WAR 包含您在 atmosphere-redis-demo 的最终 WAR 中看到的 Java 文件(以及一些 webapp 的东西)中的类 (.class) 文件。

覆盖是 Maven WAR 插件的cool feature。我经常使用它在 WAR 文件之间共享常见的工件,尤其是 src/main/webapp 中的东西。我不会将它用于 Java 类依赖项本身,因为它们可以通过常规依赖项进行管理(作为 JAR 文件拉入WEB-INF/lib),但 Atmosphere 似乎对此有不同的立场(将.class 文件覆盖到@987654334 @)。

【讨论】:

    【解决方案2】:

    使用 ma​​ven-source-plugin 下载源代码。

      <plugin>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.2.1</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    

    【讨论】:

    • 您能否提供更多详细信息,例如将您放置的 XML 简介放在哪里,然后使用什么 maven 命令?