关于传统项目打成war包的的分析

技术在不断的革新,以前的项目没有jar管理工具时,都是手动将依赖的jar拷贝到项目之下,然后Build Path,之后Maven出现了,出现了jar包中央仓库,所有的jar包资源集中在这里,免去频繁去网络上查找jar包的麻烦。Maven采用坐标对一个jar进行定位,使每个jar包在中央仓库中有唯一标识。后面出现的Gradle,原理和Maven类似,且有更多的新特性。

说回传统项目,通过Eclipse创建一个动态web项目(Dynamic Web Project),其目录结构如下:

│  .classpath
│  .project
│
├─.settings
│      .jsdtscope
│      org.eclipse.jdt.core.prefs
│      org.eclipse.wst.common.component
│      org.eclipse.wst.common.project.facet.core.xml
│      org.eclipse.wst.jsdt.ui.superType.container
│      org.eclipse.wst.jsdt.ui.superType.name
│
├─build
│  └─classes
├─src
└─WebContent
    ├─META-INF
    │      MANIFEST.MF
    │
    └─WEB-INF
        │  web.xml
        │
        └─lib 

以点开头的文件或者文件夹:classpath project settings等都是由Eclipse创建,一般忽略不上传到git中(gitignorehttps://stackoverflow.com/questions/44657300/what-project-files-are-supposed-to-ignore-in-gitignore-file

build 是编译后放class文件的位置,这是Eclipse配置,可以修改,一般部署到Tomcat中后 class文件会放在WEB-INF/classes中(https://blog.csdn.net/tony_java_2017/article/details/80839313

src 源码文件

WebContent web项目的根目录文件夹(MyEcplise创建的话是WebRoot,二者没有本质区别 https://blog.csdn.net/u013938165/article/details/21613573

项目打成war包后放到tomcat中,启动tomcat项目会被解压,解压后的文件如下:

│
├─META-INF
│      MANIFEST.MF
│
└─WEB-INF
    │  web.xml
    │
    ├─classes
    └─lib

结构和WebContent一致,src中的源码编译后放在了classes文件夹下。

后面的SpringBoot直接内部集成了Tomcat容器,打成jar包就可以运行。不过实际情况也有将SpringBoot打成war包放在Tomcat中运行,不过失去了SpringBoot的一些特性,将SpringBoot项目打成war包后可以看到结构如下:

│
├─META-INF
│  │  MANIFEST.MF
│  │
│  └─maven
│      └─com.company
│          └─electric
│                  pom.properties
│                  pom.xml
│
├─org
│  └─springframework
│      └─boot
│          └─loader
│              │  ExecutableArchiveLauncher$1.class
│              │  ExecutableArchiveLauncher.class
│              │  JarLauncher.class
│              │  ...
│              │
│              ├─archive
│              │      Archive$Entry.class
│              │      Archive$EntryFilter.class
│              │      Archive.class
│              │      ...
│              │
│              ├─data
│              │      ByteArrayRandomAccessData.class
│              │      RandomAccessData$ResourceAccess.class
│              │      RandomAccessData.class
│              │      ...
│              │
│              ├─jar
│              │      AsciiBytes.class
│              │      Bytes.class
│              │      CentralDirectoryEndRecord.class
│              │      ...
│              │
│              └─util
│                      SystemPropertyUtils.class
│
└─WEB-INF
    ├─classes
    │  │  application.properties
    │  │
    │  └─com
    │      └─company
    │          └─electric
    │              │  ElectricApplication.class
    │              │
    │              └─controller
    │                      IndexController.class
    │
    ├─lib
    │      classmate-1.3.4.jar
    │      hibernate-validator-5.3.6.Final.jar
    │      jackson-annotations-2.8.0.jar
    │      ...
    │
    └─lib-provided
            spring-boot-starter-tomcat-1.5.13.RELEASE.jar
            tomcat-annotations-api-8.5.31.jar
            tomcat-embed-core-8.5.31.jar
            tomcat-embed-el-8.5.31.jar
            tomcat-embed-websocket-8.5.31.jar

结构基本一致。

End

原文地址:https://www.cnblogs.com/colin220/p/10189145.html

时间: 2024-10-12 20:31:30

关于传统项目打成war包的的分析的相关文章

将web项目打成war包部署在tomcat步骤

1.将自己的项目打成war包. 2.将打包好的war复制到${tomcat.home}/webapps项目下. 3.在${tomcat.hom}/conf目录下打开server.xml文件,找到Host节点,在Host节点下添加: <Context docBase="D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\Products.war" path="/Products" relo

Web项目打成war包部署到tomcat时报MySQL Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)错误解决方案

Web项目使用使用root账号root密码进行部署,通过Eclipse加载到Tomcat服务器可以发布成功,打成war包放到tomcat的webapps目录无法发布成功,报错: jdbc.properties涉及Mysql配置: 错误很明显,与MySQL密码有关,但是两种方式部署项目使用的jdbc.properties配置文件是一样的.所以肯定不是密码不对引起的,只好找度娘,O(∩_∩)O哈哈~. 网上大部分帖通过运行mysql -u root -p命令登录时也会报这个错误,所以,我就尝试这种方

Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案

即上篇通过将web项目打成war包部署到Tomcat服务器,解决mysql问题后,又出现了新问题,真是一波三折,所以将解决过程分享给大家,希望能帮助到小伙伴们~ 将打好的war包拷贝到Tomcat的webapps目录,然后在Tomcat的bin目录找到startup.bat批处理文件,直接双击执行,结果运行几秒后直接闪退,顿时有种不好的预感,在浏览器访问web项目,结果连localhost:8080都无法访问,web项目未发布成功,一脸懵逼~ 没有日志看不到为啥发布不成功额,想了想,可以稍微修改

idea把java web项目打成war包

地址链接:https://blog.csdn.net/weixin_30399055/article/details/94990015 1.新建artifacts 2.设置你的目录内容路径 3.找到项目web或webapp的路径 4.可以直接添加已经跑通的项目 5.配置完成点OK 6.编译打成war包 7.点击编译结束打完收工 8.找到你的输出位置就可看见war包了 原文地址:https://www.cnblogs.com/hcklqy/p/12048301.html

idea将web项目打成war包放在tomcat/webapps上运行

1.进入Project Structure 或者 file -> Project Structure 或者 快捷键ctrl+alt+shift+s 2.选中Artifacts 3.点加号,然后如图 4.war包的默认输出路径 5.点击+号 -> 选择Directory -> 选择web项目根路径 6.在/WEB-INF/classes目录下, 生成编译后的class文件 7.点击ok 8.点击[Build]->[BuildArtifacts]->[Build]菜单, 找到自己

IDEA将项目打成war包

在IDEA里面使用快捷键Ctrl+Alt+Shift+S打开配置项目的页面,然后按照下图操作: 执行完上述操作之后参考下图: 最后再按照下图操作: 最后再对应的文件夹下面就会生成我们的war包: 原文地址:https://www.cnblogs.com/luzhanshi/p/10924640.html

ideal中把项目打成war包,并放在tomcat运行,遇见的问题。。。

先说下我遇见的问题吧:最近做项目要把项目放在tomcat上运行,用的springboot框架, 在建项目时选择的是  jar包,项目写完要部署打包是,在pom中虽然把包改成了war ,可是每次放入tomcat中webapp中启动 老是报404..  最后重新建的项目把jar改成了war才能运行项目..  还有在访问tomcat webapp中的项目时,是端口+解压好的文件夹名.   以上并没有找到问题的最根本原因,只是能走通而已,哪位大佬知道为什么项目启动不了,希望不吝赐教. 原文地址:http

异常类型:Myeclipse10将web项目打成war包时出现security alert:integrity check error

是在对MyEclipse中的web项目打包的时候出现这个异常类型的,点击下边图片的 WAR file(MyEclipse)就会弹出一个警告框然后会MyEclipse就自动关闭了. E security alert:integrity check error this product did not pass the myeclipse integrity check. this security check is a prerequisite for launch of myeclipse. p

SpringBoot之打成war包部署到Tomcat

正常情况下SpringBoot项目是以jar包的形式,正常情况下SpringBoot项目是以jar包的形式,并且SpringBoot是内嵌Tomcat服务器,所以每次重新启动都是用的新的Tomcat服务器.正因如此,也出现了一个问题:    上传到项目的文件,如果是保存在项目中的,那么重启过后文件就会丢失.比如我们上传了一个头像,重启项目后,这个头像就没了.而如果将文件保存在本地磁盘中的话,html中标签没办法获取(当然,企业项目中一般是有专门的图片服务器的).因此,我们才需要将SpringBo