maven导出项目依赖的jar包

本文介绍如何将Maven项目的依赖项导出到指定目录,包括默认目录target/dependency及自定义目录,并提供了命令行与IDE操作方法。

 摘要: 在进行项目部署时,需要将maven项目所依赖的jar导出到指定目录,本文讲解如何导出项目依赖的jar包


一、导出到默认目录 targed/dependency 

    从Maven项目中导出项目依赖的jar包:进入工程pom.xml 所在的目录下,执行如下命令:

mvn dependency:copy-dependencies

或在eclipse中,选择项目的pom.xml文件,点击右键菜单中的Run As,见下图红框中,在弹出的Configuration窗口中,输入 dependency:copy-dependencies后,点击运行

      maven项目所依赖的jar包会导出到targed/dependency目录中


二、导出到自定义目录中

    在maven项目下创建lib文件夹,输入以下命令

mvn dependency:copy-dependencies -DoutputDirectory=lib
 maven项目所依赖的jar包都会复制到项目目录下的lib目录下

mvn dependency:copy-dependencies -DoutputDirectory=lib   -DincludeScope=compile


三、设置依赖级别

    同时可以设置依赖级别,通常使用compile级别

原文转载于 https://my.oschina.net/cloudcoder/blog/212648

<think>好的,用户的问题是关于如何使用Maven导出项目的所有依赖,并确保依赖所需的文件夹。我需要先理解用户的具体需求。通常,导出依赖Maven中可以通过依赖插件来实现,比如使用maven-dependency-plugin的copy-dependencies目标。但用户提到要含“依赖所需的文件夹”,这可能是指除了JAR文件之外的其他资源目录,比如配置文件、资源文件等。 首先,用户可能是在进行项目时,希望将所有依赖JAR文件以及它们所需的资源目录一起导出。标准的maven-dependency-plugin默认只会复制JAR文件,所以如果需要含其他资源,可能需要额外的配置。例如,在插件配置中指定includeTypes或者使用其他参数来含更多类型的文件。 然后,想到引用中的内容,用户提供的引用1提到Maven资源目录的打处理,以及如何使用<Include-Resource>指令。虽然这是关于bundle插件的,但可能相关的思路可以应用到依赖导出中。例如,可能需要自定义资源含规则,或者使用占位符如{maven-resources}来含生成的资源列表。 接下来,用户可能需要配置maven-dependency-plugin的copy-dependencies目标,设置outputDirectory,并确保含所有需要的文件类型。另外,可能需要结合其他插件或配置来处理资源文件夹。例如,maven-resources-plugin可以用来复制项目资源,但依赖的资源可能需要不同的处理方式。 另外,用户的问题中可能涉及到依赖项中的资源文件夹,比如有些依赖Maven仓库中除了JAR文件外,可能含其他目录。但通常情况下,Maven依赖JAR文件中已经含了所需的资源,因此导出JAR应该足够。但如果用户有特殊需求,比如某些依赖将资源放在特定的外部目录中,可能需要单独处理,例如通过解压JAR文件来获取这些资源,但这比较复杂。 总结可能的步骤:使用maven-dependency-plugin复制所有依赖JAR到指定目录,然后使用maven-resources-plugin复制项目本身的资源文件。如果需要依赖中的资源,可能需要解压JAR,或者确认依赖本身是否已经将资源打JAR中,通常不需要额外处理。 还需要注意用户提到的“依赖所需的文件夹”是否指的是依赖库本身需要的文件夹,比如native库或者其他配置文件的位置。这时候可能需要配置插件来含这些目录,或者调整输结构。 最后,根据引用1的内容,如果在配置资源含时,可以使用{maven-resources}来扩展默认的资源路径,这可能帮助用户自动Maven生成的所有资源,确保不遗漏。</think>### 分步解答:使用Maven导出项目依赖含所需文件夹 #### 步骤1:配置`maven-dependency-plugin`导出依赖 在`pom.xml`中添加以下配置,使用`copy-dependencies`目标将依赖JAR文件复制到指定目录(默认`target/dependency`): ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.3.0</version> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dependencies</outputDirectory> <includeScope>runtime</includeScope> </configuration> </execution> </executions> </plugin> </plugins> </build> ``` 此配置会导出所有`runtime`作用域的依赖JAR文件,并保留其文件名[^1]。 --- #### 步骤2:项目资源文件夹 若需项目自身的资源文件夹(如`src/main/resources`),使用`maven-resources-plugin`: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.3.0</version> <executions> <execution> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/resources</outputDirectory> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> ``` 这会复制`src/main/resources`下的所有文件到`target/resources`。 --- #### 步骤3:处理依赖中的额外文件夹(高级场景) 若依赖JAR含需提取的文件夹(如配置文件),可通过`maven-dependency-plugin`解压特定依赖: ```xml <execution> <id>unpack-dependencies</id> <phase>package</phase> <goals> <goal>unpack</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>com.example</groupId> <artifactId>example-library</artifactId> <version>1.0.0</version> <type>jar</type> <overWrite>true</overWrite> <includes>config/,static/</includes> <outputDirectory>${project.build.directory}/extracted</outputDirectory> </artifactItem> </artifactItems> </configuration> </execution> ``` 此配置会解压指定依赖中的`config/`和`static/`目录到`target/extracted`。 --- #### 验证输结构 执行以下命令后检查输目录: ```bash mvn clean package ``` 生成的目录结构应含: ``` target/ ├── dependencies/ # 所有依赖JAR ├── resources/ # 项目资源文件 └── extracted/ # 解压的依赖文件夹(如配置了步骤3) ``` --- ### 关键配置说明 1. **依赖范围控制**:通过`<includeScope>`可过滤依赖作用域(如`compile`/`test`)[^1] 2. **资源合并**:使用`{maven-resources}`占位符可自动Maven默认资源目录[^1] 3. **增量更新**:`<overWrite>true</overWrite>`确保文件更新时覆盖旧版本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值