Maven:如何使用源和依赖项导出项目

时间:2009-11-17 20:29:39

标签: maven-2 maven-dependency-plugin

我有一个Maven项目,包含repo和stuff中的依赖项。我想用所有依赖项“导出”它的源代码,以便我可以在IDE中成功打开它,而不需要在机器上运行Maven。

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

所以我希望将所有依赖项和我的源集合在一个地方,可以使用IDE(Eclipse或IDEA)打开所有检测到的库吗?

3 个答案:

答案 0 :(得分:32)

尝试使用目标为copy-dependencies

的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 p.e。)? Maven可以为特定的IDE生成项目,并将所有相关的jar包含为变量(指向本地存储库中的这些jar),因此不需要使用副本依赖项来存储子文件夹。

答案 1 :(得分:10)

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

对于依赖项,Maven 2 Dependency Plugin及其copy-dependencies将有助于cetnar指出。

对于来源,您可能需要Maven Source Plugin及其source:aggregate目标(或者Maven Assembly Plugin和预定义的src描述符,但source:aggregate是方便多模块构建)。

要将整个事物绑定在一起(也许可以解压缩源代码),我会使用Maven Assembly Plugin

答案 2 :(得分: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>