当前位置: 首页 > 知识库问答 >
问题:

如何使用Maven分发依赖项jar?

孔冥夜
2023-03-14

我下载了一个Maven项目,可以运行mvn安装构建目标helloworld。jar,它依赖于多个第三方运行时jar。但是,我不知道如何使用Maven将这些第三方JAR自动复制到特定目录中。查看pom。xml,我发现了以下语句。因此,基本上我希望将第三方JAR复制到${project.build.directory}/lib。要做到这一点,我应该使用哪个maven插件/短语/目标?有人能给我看一个可运行的maven语法吗?谢谢

<profile>
    <id>build</id>
    <activation>
        <activeByDefault>false</activeByDefault>
    </activation>
    <properties>
        <maven.test.skip>false</maven.test.skip>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependency-jar</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>log4j</groupId>
                                    <artifactId>log4j</artifactId>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>
                                        ${project.build.directory}/lib
                                    </outputDirectory>
                                    <destFileName>
                                        log4j.jar
                                    </destFileName>
                                </artifactItem>


                                <artifactItem>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>${project.artifactId}</artifactId>
                                    <version>${project.version}</version>
                                    <type>jar</type>
                                    <overWrite>true</overWrite>
                                    <outputDirectory>
                                        ${project.build.directory}/lib
                                    </outputDirectory>
                                    <destFileName>
                                        helloworld.jar
                                    </destFileName>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</profile>

共有1个答案

夹谷山
2023-03-14

POM文件中指定的插件的可用构建目标列表如下:

https://maven.apache.org/plugins/maven-dependency-plugin/usage.html

我怀疑您想要依赖项:复制依赖项

 类似资料:
  • 根据JUnit新发布的V.5.2,现在有一个BOM: JUnit BOM:为了使用Maven或Gradle简化依赖性管理,现在在org.JUnit:jUnit-BOM:5.2.0 Maven坐标下提供了一个物料清单POM。 但是有了这个IntelliJ IDEA(v.2018.1.3Ultimate x64,Maven v.3.5.3,target JDK 10.0.1)似乎不知道标记是什么,也不

  • 问题内容: 所以快速的背景是我正在创建一个Java程序,该程序使用许多不同的导入 我知道Netbeans找不到这些文件,因为我的计算机上没有这些文件。但是有没有办法让Netbeans自动与org.apache连接并检索这些文件?还是我只需要去下载它们。有人建议使用Maven,但是我不确定这是否是正确的解决方案,或者如何解决? 谢谢 问题答案: 除非您使用Maven结构(请参见此处,Maven入门)

  • 问题内容: 有没有一种方法可以将类型依赖项添加到我的POM并获取其所有模块? JavaMail是一个很好的例子。Maven Central Repo的父POM名为:com.sun.mail:all:1.5.0,模块包括:mail,mailapi,mailapijar,smtp,imap,gimap,pop3和dsn。 但是,“所有”人工制品只有一个文件: 是否可以将“所有”人工制品添加为对我的PO

  • 我在父POM中声明 此外,儿童pom使用 一切正常吗?但是当我在type = pom中使用这种依赖关系时 我有错误 如何在dependencyManagement中用type = POM $ { Jboss-javaee-7.0 . version }声明一个依赖项如果我在根中带有Jboss-javaee-7.0,那么运行

  • 我已经使用Maven在Eclipse中设置了一个动态Web项目。Web项目对其他JAR有很多依赖关系。JAR被正确地添加到Maven/Eclipse中的文件夹中。然而,许多JAR是其他普通Java项目的结果。我想让JAR在Eclipse中不时地用它们的重新定义Java项目来表示(但不是所有的JAR)。 那么,如何用Eclipse项目快速替换普通Maven依赖项JAR呢? null

  • 最近,我发现了以下问题: 当我为我的项目设置依赖项管理时,我有一个child-pom,它使用具有依赖项的插件,我想要与在我的依赖项管理中声明的依赖项同步。 在根pom中,我在依赖项管理中声明: 在子pom中,我有一个插件需要gwt-user: 但是,如果我移除gwt-maven-plugin中使用的依赖版本,编译就会失败。 是不是还有别的办法可以实现呢? PS:在maven和maven插件中有一个