当前位置: 首页 > news >正文

Java项目如何打jar包?

1.java把项目打包成jar
步骤一、IDEA -> File -> Project Structure -> Artifacts -> + -> JAR -> From moduls with dependencies... -> 选择 Module 和 Main Class -> 选择 JAR files from libraries
JAR files from libraries 解释
extract to the target JAR :假如项目引入了第三方Jar,会将第三方Jar解压并合并到当前项目进行打包,会生成一个较大的jar包。
copy to the output directory and link via manifest:假如项目引入了第三方Jar,并不会将第三方Jar打包到当前项目的Jar,而是选择分开。
然后Apply -> ok 进行保存。

步骤二、IDEA -> Build -> Build Artifacts -> 选择刚刚创建的Artifact -> Build / Rebuild,在项目中会产生一个目录out -> artifacts -> [artifact name]_jar -> [artifact name].jar

2.将本地jar引入到java工程中的三种方式
方式一、IDEA -> File -> Project Structure -> Modules -> Dependencies -> + -> JARs or Directories
方式二、如要添加的jar文件较多,可创建目录,例:resources->libs,然后用方式一,选择此目录。
方式三、如果项目是maven工程,可以通过修改pom文件,将本地jar引用工程中,如下所示:

<dependency>
  <groupId>com.sun.jdmk</groupId>
  <artifactId>jmxtools</artifactId>
  <version>1.2.1</version>
  <scope>system</scope>
  <systemPath>D:/jmxtools-1.2.1.jar</systemPath>
</dependency>

 解释
<scope>system</scope>告诉Maven不要去中央仓库或远程仓库中寻找依赖,而是使用项目中指定路径的jar文件
<systemPath>D:/jmxtools-1.2.1.jar</systemPath>指定系统中jar文件的路径。


3.java maven项目打jar包发布(精简版)

先clean再package
target文件夹下面有生成一个jar包

参考:

Maven项目打包为jar的几种方式_maven打包本地jar包-CSDN博客

解释:

1. maven-compiler-plugin(Java 编译插件)

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.7</source>   <!-- 需修改:Java 源码版本 -->
        <target>1.7</target>   <!-- 需修改:编译目标版本 -->
        <encoding>UTF-8</encoding> <!-- 一般无需修改 -->
    </configuration>
</plugin>

 2. maven-jar-plugin(生成 JAR 包插件)

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>      <!-- 自动生成 Class-Path -->
                <classpathPrefix>lib/</classpathPrefix> <!-- 依赖库路径前缀 -->
                <mainClass>com.yourpakagename.mainClassName</mainClass> <!-- 需修改:主类 -->
            </manifest>
        </archive>
    </configuration>
</plugin>

需要修改的地方
  • <mainClass>:替换为你的项目启动类全限定名。
    例如:com.example.MainApp

3. maven-dependency-plugin(依赖处理插件)

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy</id>
            <phase>install</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

要修改的地方
  • <outputDirectory>(可选):如果你希望依赖库输出到其他目录,调整路径。
    默认 ${project.build.directory}/lib 会生成到 target/lib,与 classpathPrefix 一致,通常无需修改。

 

完整配置注意事项

  1. 依赖库与 Class-Path 的匹配

    • maven-dependency-plugin 会将依赖复制到 target/lib 目录。

    • maven-jar-plugin 生成的 MANIFEST.MF 中的 Class-Path 会以 lib/ 开头,确保路径一致。

 

相关文章:

  • 网站内容为王昆明百度推广优化
  • 东莞网站建设公司辉煌大厦今天的新闻联播
  • python3 网站开发网站关键词快速排名技术
  • 自定义导航网站 源码友情链接属于免费推广吗
  • 上海新闻发布会旺道seo优化软件
  • 海西州公司网站建设/青岛疫情最新情况
  • 算法--递归、搜索与回溯
  • 特征降维
  • WebAssembly,突破前端性能优化的方案
  • Windows11系统下python虚拟环境管理独家心得
  • 学习threejs,使用多面体(IcosahedronGeometry、TetrahedronGeometry、OctahedronGeometry等)
  • ESP32-CAM对接阿里云平台数据透传
  • 文件 I/O 系统调用的内部机制
  • C语言数据结构:队列的操作实现
  • 【算法学习计划】贪心算法(中)
  • INFINI Console 极限控制台密码忘记了,如何重置?
  • 本科中厂Java后端干两年半想换岗,担心就业面和技术门槛如何规划未来?
  • Docker:ERROR [internal] load metadata for docker.io/library/java:8-alpine问题解决
  • 漂流瓶与灯塔的约定——两台电脑的跨海通信物语
  • 程序员面试金典 17.18 -- 摩尔投票法
  • MySQL 高效 SQL 使用技巧详解
  • 6. 王道_网络协议
  • 利用Linux的SPI子系统和SPI总线写出SPI设备(DAC模块)的驱动
  • 精确截图工具:基于 Tkinter 和 PyAutoGUI 的实现
  • Docker实现MySQL主从复制配置【简易版】
  • linux 部署Jumpserver(堡垒机)