如何将依赖项源复制到Maven中的目录

Qiang Li

我知道mvn dependency:sources可以下载所有依赖项的源代码。有了mvn copy-dependencies一个可以下载所有的依赖到指定的本地目录。

如何结合两者,以便我可以将所有依赖项的源复制到目录中?

Joao Esperancinha

我不会使用任何这些解决方案。

只需将maven-dependeny-plugin包含到您的Maven构建中,并根据需要调整配置即可:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <version>2.10</version>
  <configuration>
    <outputDirectory>/tmp/alternateLocation</outputDirectory>
  </configuration>
  <executions>
    <execution>
      <id>copy-dependencies</id>
      <phase>none</phase>
      <goals>
        <goal>copy-dependencies</goal>
      </goals>
      <configuration>
        <outputDirectory>/tmp/alternateLocation</outputDirectory>
        <overWriteReleases>false</overWriteReleases>
        <overWriteSnapshots>false</overWriteSnapshots>
        <overWriteIfNewer>true</overWriteIfNewer>
      </configuration>
    </execution>
  </executions>
</plugin>

您可以更改几项以满足您的需要,例如,在我给您的示例中,我认为它直接为您提供了解决方案,我已指定在任何阶段都没有要复制的依赖项在tmp中夹。但是我也说我的新目标是复制依赖性。因此,在命令行中这将类似于:

mvn dependency:copy-dependencies

如果您发现我现在将outputDirectory配置了两次。在执行过程中,这意味着仅当您运行指定的Maven构建阶段(如打包清理测试等)时才会考虑使用它作为插件节点的第一个子级兄弟,这意味着当命令行显式更改依赖插件时,将考虑使用该插件。

您可以在此处找到有关Maven依赖插件的更多信息:

由于您同时需要依赖项和源,因此我能想到的最好方法是正常运行maven,而无需隐式调用实际插件。如果您在清理后阶段运行它(即mvn清理后),它将运行以下两个目标:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.10</version>
    <configuration>
        <outputDirectory>/tmp/alternateLocation</outputDirectory>
    </configuration>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>post-clean</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>/tmp/alternateLocation</outputDirectory>
                <overWriteReleases>false</overWriteReleases>
                <overWriteSnapshots>false</overWriteSnapshots>
                <overWriteIfNewer>true</overWriteIfNewer>
            </configuration>
        </execution>
        <execution>
            <id>sources</id>
            <phase>post-clean</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <classifier>sources</classifier>
                <outputDirectory>/tmp/alternateLocation</outputDirectory>
                <overWriteReleases>false</overWriteReleases>
                <overWriteSnapshots>false</overWriteSnapshots>
                <overWriteIfNewer>true</overWriteIfNewer>
            </configuration>
        </execution>
    </executions>
</plugin>

它将始终将副本复制到目标文件夹,但是如果文件已经存在,则不会覆盖。我必须选择一个不常用的阶段。清洁后似乎是这里的最佳人选。这只是在想我想隔离这种构建。后清理还清理构建。如果您只是想在每次构建时都继续使用此插件,那么我建议您将其置于清理安装阶段。这样,它总是在后台发生,您不必担心。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将提供的Maven依赖项复制到所选目录中?

如何将依赖项复制到 Gradle 中的 Build 目录

如何将zip依赖项复制到SBT构建中的目标目录?

maven将特定的依赖项jar复制到.war文件中的特定目录

在Maven构建期间如何将外部依赖项复制到Open Liberty

Maven:如何将工件复制到特定目录?

将所有Maven依赖项从子级pom复制到目录

Gradle 项目:将依赖项复制到构建目录

如何使用Maven将生成的文件从依赖项复制到当前项目的目标?

如何将依赖项从库项目复制到主项目?

如何将目录层次结构(省略文件)复制到其他目录中?

用CMake制作完后如何将目录内容复制到构建目录中?

如何将文件复制到DOS中的目录,并在必要时创建目录?

如何将Maven管理的依赖项复制到war \ web-inf \ lib中,以便可以在Eclipse中以调试模式运行GWT 2.0应用程序?

如何将随机文件复制到目录

如何将目录复制到自身?

如何将文件复制到子目录?

如何将工作目录复制到新提交

如何将 JarEntry 复制到目录

从命令行使用Ivy时,如何使Ivy将依赖项复制到lib目录?

如何将内部打包文件复制到Java中的工作目录中?

如何将烧瓶依赖项从一个阶段复制到Dockerfile中的下一个阶段?

如何将 Internet MIME 消息的所有内容复制到 Notes 中的正文项?

如何将重复项复制到另一个工作表中?

Maven多模块项目-将所有依赖项复制到一个tar.gz中

Mule将Maven依赖项复制到env.M2_REPO文件夹中

如何使Maven将资源文件复制到WEB-INF / lib目录中?

如何将文件从 docker 容器传输/复制到 ubuntu 18.04 中的本地目录?

如何将文件从Docker容器传输/复制到ubuntu 18.04中的本地目录?