V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MrZhangLo
V2EX  ›  Java

求教,如何使用 maven 下载父 pom 中的所有依赖

  •  
  •   MrZhangLo · 2023-07-17 17:36:04 +08:00 · 1315 次点击
    这是一个创建于 495 天前的主题,其中的信息可能已经有所发展或是发生改变。

    举例,我有一个多 module 项目。 父 pom 中声明了 a 、b 、c 三个依赖。模块 A 使用了 ab ,模块 B 使用了 ac 。有没有一个配置,或者命令,能让我下载 abc 这三个依赖。

    6 条回复    2023-07-21 10:37:02 +08:00
    ikas
        1
    ikas  
       2023-07-17 21:10:09 +08:00
    NSDont
        2
    NSDont  
       2023-07-17 23:54:10 +08:00
    你参考一下,我之前用来下载依赖的

    mvn clean package -Dmaven.test.skip=true
    mvn dependency:sources
    mvn dependency:resolve -Dclassifier=javadoc
    Xbluer
        3
    Xbluer  
       2023-07-17 23:57:36 +08:00
    MrZhangLo
        4
    MrZhangLo  
    OP
       2023-07-18 19:00:51 +08:00
    @Xbluer 构建的机器和实际应用机器不是同一台。 我需要在构建机上打出安装包,这个安装包包含了所有的依赖,之后的处理就交给部署阶段了。
    MrZhangLo
        5
    MrZhangLo  
    OP
       2023-07-18 19:09:30 +08:00
    之前的描述不够清楚。 我举实际的例子。
    项目是一个 maven 多 module 项目。存在 6 个 web 小模块,其中的依赖都差不多。
    正常打包,每个模块都会打出自己需要的依赖。 比如 spring-xxx 就要出现 6 次。
    现在想减小体积。打包将所有的依赖打入一个目录,然后每个模块排除掉 WEB-INF/lib ,打出不带依赖的 war 包,部署的阶段再将依赖复制到每个 WEB-INF/lib 下。

    现在遇到的困难就是,不知道怎么整出一个配置,让我在 mvn clean package 的时候,把父 pom 中的所有依赖打入一个目录中。😫

    求指点
    mgzu
        6
    mgzu  
       2023-07-21 10:37:02 +08:00
    ```
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>3.6.0</version>
    <executions>
    <execution>
    <phase>package</phase>
    <goals>
    <goal>copy-dependencies</goal>
    </goals>
    <configuration>
    <outputDirectory>${project.basedir}/jars</outputDirectory>
    </configuration>
    </execution>
    </executions>
    </plugin>
    ```
    refs: https://stackoverflow.com/questions/33125899/copy-all-dependencies-jars-from-child-projects-into-parent-project-directory
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2794 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 00:09 · PVG 08:09 · LAX 16:09 · JFK 19:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.