在IntelliJIDEA中如何将依赖包打入项目中?

在IntelliJIDEA中将依赖包打入项目主要有以下几种场景和步骤:

一. 对于 Maven 项目:

  1. pom.xml 文件中正确声明所需的依赖。IDEA 会自动从 Maven 仓库下载这些依赖。

  2. 构建项目时,默认情况下 Maven 不会将依赖包直接打进 JAR/WAR 文件中,而是将其放在 target/dependency 目录下供运行时使用。

  3. 若要创建一个包含所有依赖的可执行 JAR(也称作 FAT JAR 或者 Uber JAR),可以使用 Maven 的 Shade 插件:

xml 复制代码
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    ```
    然后执行 `mvn package` 命令构建项目。



二.对于非Maven项目,如果你想要将依赖的jar包打进最终的jar文件以便于独立运行,通常需要手动操作,以下是通过 IntelliJ IDEA 打包非Maven项目并包含依赖的常见步骤:

1. 手动收集依赖:
  - 将所有项目所依赖的第三方jar包复制到指定目录,比如`lib`目录。

2. 配置运行环境:
  - 如果是Java应用程序,确保在项目设置中设置了正确的类路径(classpath),即将上述`lib`目录加入到classpath中。

3. 打包为可执行JAR:
  - 在IntelliJ IDEA中,选择File -> Project Structure(或者按快捷键Ctrl+Alt+Shift+S)。
  - 在Project Settings下的Artifacts中,你可以创建一个新的Artifact(如JAR),并设置其主类(包含main方法的类)。
  - 在"Output Layout"中,将你的项目输出和`lib`目录下的所有依赖项都添加进来,可以选择"Extract to the target JAR",这样IDEA会在生成的JAR中包含所有依赖。

  - 若想生成的JAR为可执行的,确保在Artifact的属性设置中指定了Main Class。

4. 打包:
  - 完成上述配置后,可以通过Build菜单 -> Build Artifacts -> Build(或Rebuild)来构建包含依赖的JAR文件。
相关推荐
卷无止境16 分钟前
拯救乱码方块:pandas 绘图中文字体的一揽子解决方案
后端·python
李昊哲小课25 分钟前
fastapi sse websocket 智能家居实时控制台
python·websocket·智能家居·fastapi·sse
杰佛史彦明 本王是暴君36 分钟前
PyTorch KernelAgent 源码解读 ---(2)--- 总体流程
人工智能·pytorch·python
Zane19941 小时前
别再手写 try/finally 了:一文讲透 with 语句背后的上下文管理器协议
后端·python
李可以量化1 小时前
量化高性能服务框架 Tornado 全面解析(上):异步非阻塞的核心能力与场景落地
大数据·python·量化交易·tornado·qmt·ptrade
内蒙深海大鲨鱼1 小时前
3.Introduction to PyTorch YouTube Series--Autograd
人工智能·pytorch·python
用户0332126663671 小时前
使用 Python 在 Excel 中添加或删除批注
python·excel
dogstarhuang1 小时前
手把手用 Doubao-Seed-Evolving 写一个网站监控脚本:完整代码与两处踩坑
python·ai编程·掘金技术征文
ZZHow10241 小时前
PyTorch深度学习入门笔记(小土堆)P7-14
人工智能·pytorch·笔记·python·深度学习
很楠爱上2 小时前
AI项目------赛博负熵:拆解一个 Codex 生成的英语背单词全栈工程(附源码文件免费)
人工智能·python·codex