什么是打包

什么是打包

工作场景

bug改完了,上头让把后端代码打包一下,放到云桌面指定地址。

是什么

什么是打包

一个软件开发完成,需要给用户使用。这就需要将我们的软件先打包,将所有相关的Java源文件、配置文件和资源文件等全部压缩到一个文件里,形成一个可执行的单位或部署包。这个部署包可以被移动到其他环境中,例如生产服务器或测试环境,并在那里运行。

这个部署包一般来说就是jar包或war包。

在Java项目中,通常使用构建工具(如Apache Maven或Gradle)来自动化打包的过程。

jar包和war包啥区别

  • 用途不同:

    • JAR(Java Archive)包主要用于打包和分发Java类、资源文件和库文件。它通常用于构建独立的Java应用程序或库。
    • WAR(Web Archive)包主要用于打包和分发Web应用程序。它包含了Web应用程序所需的类、资源文件、配置文件以及用于开发Web界面的HTML、CSS和JavaScript等前端文件。
  • 内部结构不同:

    • JAR包是一个ZIP格式的归档文件,它将所有的类文件、资源文件和库文件组织在一起。JAR包可以直接被Java虚拟机(JVM)加载和使用。
    • WAR包也是一个ZIP格式的归档文件,但它的结构更加复杂。WAR包除了包含类和资源文件外,还包含用于Web应用程序的特定目录结构,如WEB-INF和META-INF目录。其中,WEB-INF目录包含了配置文件、类文件和库文件,而META-INF目录包含了清单文件和其他元数据文件。
  • 部署环境不同:

    • JAR包主要用于构建独立的Java应用程序,可以在本地环境或服务器上运行。它通常没有内置的Web服务器,并且不需要特定的Web容器来运行。
    • WAR包主要用于构建Web应用程序,需要被部署到Java Web容器(如Tomcat、Jetty等)中才能运行。WAR包中的类和资源文件会被Web容器加载,并且Web容器提供了与浏览器通信和处理Web请求的功能。

    总结来说,JAR包适用于独立的Java应用程序或库,而WAR包适用于Web应用程序的打包和部署。它们的使用场景和内部结构有所不同,根据具体的需求选择合适的包类型进行部署。

    现在一般都是用jar包打包

    • 如果后端是一个基于Spring Boot等框架构建的独立Java应用程序,并且不需要依赖Java EE容器(如Tomcat、Jetty),则可以选择打包为JAR包。

    • JAR包可以通过命令行或脚本直接启动,它内嵌了一个内置的Web服务器(如Tomcat Embed)来运行后端应用程序。

    • 这种方式更加简洁和轻量,并且可以方便地进行独立部署和扩展。

    • 如果后端是一个基于Java EE标准的应用程序,依赖Java EE容器(如Tomcat、Jetty、WildFly等)来运行,则可以选择打包为WAR包。

    • WAR包可以在Java EE容器中部署,并由容器提供Web服务器环境和Servlet容器。

    • 这种方式更适合传统的Java EE项目,需要与其他Java EE组件进行交互或使用容器提供的特性。

手动打包和自动化打包啥区别

  • 手动打包:开发人员需要手动将源代码、资源文件等组织好,并使用命令行或相关工具执行打包命令
  • 自动打包:通过构建工具(如Maven、Gradle)或持续集成/持续交付(CI/CD)工具来自动执行打包过程。构建工具会根据项目配置和规则,自动收集代码、编译、处理依赖、生成部署单元等。

怎么做

jar包打包

https://www.jianshu.com/p/61cfa1347894

maven打包

使用maven进行打包

  1. 设置Maven环境: 首先,确保已经安装了Maven,并将其配置到系统环境变量中,以便在命令行中能够访问到Maven命令。

  2. 创建项目结构: 确保你的Java项目符合标准的Maven项目结构,其中包括src/main/java目录用于存放源代码,src/main/resources目录用于存放资源文件,pom.xml文件用于配置和管理项目。

  3. 编辑pom.xml: 打开项目根目录下的pom.xml文件,并添加或修改 部分来定义项目打包方式。例如,可以使用以下配置将项目打包为可执行的JAR文件:

    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <configuration>
            <archive>
              <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>
                <mainClass>com.example.MainClass</mainClass>
              </manifest>
            </archive>
          </configuration>
        </plugin>
      </plugins>
    </build>
    

在上述示例中,我们使用了maven-jar-plugin插件,并在配置中指定了主类(MainClass)以及其他相关选项。

  1. 执行打包命令: 在项目根目录下,打开命令行终端,并运行以下Maven命令进行打包:

    mvn package
    

    这将触发Maven构建过程,并生成一个可执行的JAR文件(或其他指定的打包格式),该文件位于target目录下。

    通过以上步骤完成后,你的Java项目便成功地被打包成一个可执行的部署单元,你可以将它拷贝到其他环境中进行部署和运行。请注意,在实际项目中,你可能还需要处理项目中的依赖关系、资源文件的复制等其他配置,具体需求可能会有所不同。

    原理

    Maven通过读取项目根目录下的pom.xml文件来了解项目的结构和配置。
    pom.xml中包含有关项目的信息,例如项目名称、版本、依赖关系等。
    Maven根据pom.xml中的配置,执行一系列预定义的生命周期阶段(如清理、编译、测试等)以及与之相关的插件。
    在打包阶段,Maven会根据项目类型和配置,将编译后的类和其他资源文件组织成一个部署单元(如JAR、WAR或EAR文件)。

    配置

    打开项目根目录中的pom.xml文件。
    根据需要,添加或修改节点下的相关配置。
    例如,添加标签指定要生成的部署单元类型,如JAR、WAR或其他。
    配置插件,如maven-compiler-plugin用于编译代码的设置,maven-jar-plugin用于JAR打包的设置等。
    在配置插件时,可以设置插件的参数以满足特定需求。例如,指定主类、排除特定文件、包含额外的资源等。
    运行Maven命令进行打包。常用的命令是mvn package,它会触发Maven构建过程并生成目标文件。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值