27

我有 Maven 项目,在 repo 和东西中有依赖项。我想“导出”它的所有依赖项的源,这样我就可以在 IDE 中成功打开它,而无需在机器上运行 Maven。

将项目打包成war文件时,它包含了所有依赖项。

因此,我希望将所有依赖项以及我的源代码收集在一个地方,可以使用 IDE(Eclipse 或 IDEA)打开所有检测到的库?

4

3 回答 3

32

使用目标复制依赖项尝试 maven-dependency-plugin

<project>
[...]
<build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
      <execution>
        <id>copy-dependencies</id>
        <phase>package</phase>
        <goals>
          <goal>copy-dependencies</goal>
        </goals>
        <configuration>
          <outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
          <overWriteReleases>false</overWriteReleases>
          <overWriteSnapshots>false</overWriteSnapshots>
          <overWriteIfNewer>true</overWriteIfNewer>
        </configuration>
      </execution>
    </executions>
  </plugin>
</plugins>
</build>
[...]
</project>

PS。
您知道 maven 和 IDE 集成(用于Eclipse pe)吗?Maven 可以为特定的 IDE 生成项目并将所有依赖的 jar 作为变量包含(指向本地存储库中的这些 jar),因此无需使用将依赖项复制到子文件夹。

于 2009-11-17T20:34:14.440 回答
10

实际上,没有什么可以开箱即用地创建包含源依赖项的包。为此,您需要结合使用一些插件。

对于依赖项,如 cetnar 所指出的, Maven 2 依赖插件及其将有所帮助。copy-dependencies

对于源,您可能需要Maven 源插件及其source:aggregate目标(或者可能需要Maven 程序集插件和预定义的src描述符,但source:aggregate对于多模块构建很方便)。

要将整个东西绑定在一起(也许解包源),我会使用Maven Assembly Plugin

于 2009-11-17T21:20:52.990 回答
0

与消息来源的战争

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
      <webResources>
        <resource>
          <directory>${build.sourceDirectory}</directory>
          <targetPath>src</targetPath>
        </resource>
      </webResources>
    </configuration>
  </plugin>
于 2013-08-02T15:36:26.970 回答