zoukankan      html  css  js  c++  java
  • idea打war包

     

     

    idea里的maven的runner的jre,只能用jre1.8

    否则会造成maven无法打包的问题。

    方式一:

    打war包:Ctrl+Shift+Alt+S

     

        来源:https://www.cnblogs.com/luzhanshi/p/10924640.html

     方式二:

    通过maven

    maven构建过程

    mvn clean ----- 【清理】 将编译(mvn compile)产生的【target】文件夹删除掉,但是不会删除本地的maven仓库已经生成的jar文件。

    mvn compile --- 【编译】在项目根目录生【target】目录,里面包含【classes】文件夹,里面是已经编译好的java类(.class文件)

    mvn test-------- 【测试】会先生成target文件夹,里面有【classes】和【test-classes】文件夹,所 以执行mvn test命令时,会先编译项目,在执行测试代码

    mvn package----【打包】看到项目的根目录下【编译】后生成的【target】文件夹中多了一个Hello-0.0.1-SNAPSHOT.jar,这个Hello-0.0.1-SNAPSHOT.jar就是打包成功之后Maven帮我们生成的jar文件,package命令会先执行编译再执行打包

    mvn install -----就是把maven构建项目的【清理clean】→【编译】→【测试】→【打包】的这几个过程都做了,同时将打包好的jar包发布到本地的Maven仓库中,所以maven最常用的命令还是"mvn install",这个命令能做的事情最多,所以这个最常用

      maven在执行一个生命周期的命令的是时候将会执行之前的所有生命周期操作,比如执行mvn install,会执行前面一系列的动作包括 compile , package , test 等,具体请查看maven的官方文档。这个特性使maven的命令更加简洁易用。

    来源:https://www.cnblogs.com/gcgc/articles/10475245.html

    使用idea自带的打包方式(多module时maven打包插件不管用)

     https://blog.csdn.net/qq_31122833/article/details/82526271

    如果在用maven构建多模块项目时,如果有sub module不是spring boot应用,在打包时就会出错。只将该插件添加到是spring boot项目的子模块。
    parent pom在deploy时,默认会将所有子module都deploy到仓库中,如果不想让某个子module部署到仓库,可以在子module的pom中添加:
    <properties>
        <maven.deploy.skip>true</maven.deploy.skip>
    </properties>

    https://www.jianshu.com/p/37c6688c4fcb

    1.jar包的介绍

    JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。JavaSE程序可以打包成Jar包(J其实可以理解为Java了)。

    JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装组件插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。

    简单来说,jar包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下。

    2.war包的介绍

    war是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在其webapps目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。

    war包是Sun提出的一种web应用程序格式,与jar类似,是很多文件的压缩包。war包中的文件按照一定目录结构来组织。根据其根目录下包含有html和jsp文件,或者包含有这两种文件的目录,另外还有WEB-INF目录。通常在WEB-INF目录下含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的servlet类和jsp,或者servlet所依赖的其他类(如JavaBean)。通常这些所依赖的类也可以打包成jar包放在WEB-INF下的lib目录下。

    简单来说,war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。

    3.区别:WAR文件代表了一个Web应用程序,JAR是类的归档文件。

    如果一个Web应用程序的目录和文件非常多,那么将这个Web应用程序部署到另一台机器上,就不是很方便了,这时可以将Web应用程序打包成Web 归档(WAR)文件,这个过程和把Java类文件打包成JAR文件的过程类似。利用WAR文件,可以把Servlet类文件和相关的资源集中在一起进行发布。在这个过程中,Web应用程序就不是按照目录层次结构来进行部署了,而是把WAR文件作为部署单元来使用。

    一个WAR文件就是一个Web应用程序,建立WAR文件,就是把整个Web应用程序(不包括Web应用程序层次结构的根目录)压缩起来,指定一个.war扩展名。

    要注意的是,虽然WAR文件和JAR文件的文件格式是一样的,并且都是使用jar命令来创建,但就其应用来说,WAR文件和JAR文件是有根本区别的。JAR文件的目的是把类和相关的资源封装到压缩的归档文件中,而对于WAR文件来说,一个WAR文件代表了一个Web应用程序,它可以包含 Servlet、HTML页面、Java类、图像文件,以及组成Web应用程序的其他资源,而不仅仅是类的归档文件。

    那么什么时候应该使用WAR文件呢?在开发阶段不适合使用WAR文件,因为在开发阶段,经常需要添加或删除Web应用程序的内容,更新 Servlet类文件,而每一次改动后,重新建立WAR文件将是一件浪费时间的事情。在产品发布阶段,使用WAR文件是比较合适的,因为在这个时候,几乎不需要再做什么改动了。

    在开发阶段,我们通常将Servlet源文件放到Web应用程序目录的src子目录下,以便和Web资源文件区分。在建立WAR文件时,只需要将src目录从Web应用程序目录中移走,就可以打包了。

    4.部署war包到Tomcat

    1). 工作中一般是开发打war包给测试,比如说现在测试拿到一个war包,名字叫test.war。

    2). 打开Tomcat的安装路径 ,假设是“D:Tomcatapache-tomcat-7.0.68”,然后进入到 webapps文件夹中,把 test.war放到 webapps文件夹。

    3). 启动Tomcat。

    如果不需要更改配置文件:到这一步就可以了。

    在浏览器输入“http:localhost:tomcat_port/test即可打开test项目的 index.jsp页面(port是自己的端口号)。如果test项目没有index.jsp页面,那就需要打开其他相应的页面。

    如果需要更改配置文件:

    4). 关闭 Tomcat。

    5). 删除 test.war文件(如果在tomcat启动的状态下删去war包,解压好的文件夹也会被一并删除,所以需要在解压后停止tomcat, 然后删掉war包,这时再启动。这时项目文件夹就会被认为不是war解压而来。)。

    6). 由于刚刚启动过Tomcat,Tomcat会自动解压缩test.war为 test文件夹。所以我们在webapps下面可以看到test文件夹。打开test文件夹更改配置文件即可。

    7). 更新完配置之后,启动Tomcat。

    8). 浏览器打开即可。




    来源:https://www.jianshu.com/p/3b5c45e8e5bd


  • 相关阅读:
    Linux Netcat命令
    clang-format
    keytool
    ip
    Linux iptables
    Linux yum源完全配置
    Makefile
    CMake
    HSTS
    开源镜像
  • 原文地址:https://www.cnblogs.com/lvhouhou/p/11907738.html
Copyright © 2011-2022 走看看