MrZhangLo
V2EX  ›  Java

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

  •  
  •   MrZhangLo · Jul 17, 2023 · 2228 views
    This topic created in 1049 days ago, the information mentioned may be changed or developed.

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

    6 replies    2023-07-21 10:37:02 +08:00
    NLight
        2
    NLight  
       Jul 17, 2023
    你参考一下,我之前用来下载依赖的

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

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

    求指点
    mgzu
        6
    mgzu  
       Jul 21, 2023
    ```
    <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
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5811 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 06:41 · PVG 14:41 · LAX 23:41 · JFK 02:41
    ♥ Do have faith in what you're doing.