javac 编译JavaWeb项目
背景:有一个 JavaWeb 的老项目,即是非 Maven 的老项目希望通过流程化的方式使用 Docker 运行。
文章目录
- 涉及的问题
- javac 编译项目并打包
- 最后
涉及的问题
接到一个任务,肯定首先是要先明白需要完成什么样功能。再次是思考完成功能具体的步骤。下面是我的想法
- 使用原生的 javac 命令编译项目,并打包成 .war 文件
- 将 war 配合 tomcat 使用 Docker 方式运行
完成上面的两大步骤就可完成任务,不过继续细分就有很多的细节可以做,毕竟原生 javac 编译项目不太会,Docker 也不是很熟练。
javac 编译项目并打包
可能很多人想用 IDEA 配置方式,帮助我们打包,然后将 war 包直接在 Docker 中使用,这样是能完成任务:可以跑起来,但是整个发布过程并不能流程化,需要自己先去 IDEA 打包,然后再手动打镜像。
所以只能选择命令行的方式直接通过项目打包。
「涉及到 war 包的目录结构,建议先根据 IDEA 打的 war 包在 tomcat/webapps/ 下能够成功运行,此时可以进去查看你 war 解压后的目录结构」。
我这里 tomcat 自动解压后的目录:
yourProjectMETA-INF (我这里这个文件没啥用)WEB-INFclassescom/--/*.java.properties 等项目配置文件libweb.xml 等系统配置文件
所有的项目 war 包都包括:
- 编译后的 classes 文件
- 所有的 .Java 文件
- .Java 文件需要的依赖 jar 包
- 项目里面的配置文件
- web.xml 、dispatcher.xml
- .properties
# find + > 将 src 下所有的 .java 文件 写到一个文件当中
find ../src/ -name *.java > ./sources.list
# 将原来的 .class 文件删除
rm -rf ./WEB-INF/classes/com/*
# -d:编译后的 .class 文件存放位置 -encoding 指定字符编码 -cp:指定要搜索类的路径 -extdirs:引用外部的依赖包(这里需要注意,引用依赖包的时候不用在 / 后面加 *.jar @:@加上文件名,就是对这个文件里的内容全部编译)
javac -d ./WEB-INF/classes -encoding utf-8 -cp ../lib/ -extdirs ./WEB-INF/lib/ @sources.list
# 最后使用 jar 命令 将所有准备好的东西全部打包(需要准备的内容:参考自己项目 tomcat 中解压后的结构,然后将对应文件放到对应位置即可) 这一步执行只是将文件打包而已,所以需要自己提前将文件准备好
jar -cvf CBHbase.war ./WEB-INF/*# 最后就能使用了
最后
本文主要记录 javac 原生编译打包项目,所以 Docker 部分就跳过了
最后将 Dockerfile 写好即可。
现在有了脚本,就可以实现流程化发布应用,而不用每次去 IDEA 里面打包
javac 编译JavaWeb项目相关推荐
- 使用javac编译Java项目
在缺乏eclipse和idea等IDE的工具的情况下,使用jdk自带的javac命令编译Java项目 当项目只有一个Java文件的时候,可以直接使用 javac 文件名.java 但是如果有多个源文件 ...
- java编译时为什么总找不到文件,javac编译时找不到文件的问题和运行项目找不到指定类问题...
问题描述: 刚刚安装完JDK,打开Eclipse创建一个新项目,写了一个测试类进行输出打印语句时,报无法找到相应类. 然后,我跑到CMD中进行javac Test.java运行测试时,报找不到对应文件 ...
- 搭建javaweb环境并运行javaweb项目
文章目录 jdk安装与配置 一.下载jdk 二.安装jdk步骤 三.配置jdk环境变量 tomcat下载与运行 运行tomcat服务器 关闭tomcat服务器 tomcat服务器目录结构 idea运行 ...
- eclipse 将javaWeb项目转化成maven项目
eclipse 将javaWeb项目转化成maven项目 CreateTime--2018年4月18日16:04:18 Author:Marydon 1.首先,maven项目的标准目录 2.web项目 ...
- 新建JavaWeb项目
新建JavaWeb项目 说明:通过Tomcat和部署了Tomcat的IDEA两种方式新建JavaWeb项目 仅由Tomcat创建JavaWeb项目 新建项目文件 在webapps文件夹下,新建一个项目 ...
- java搭建阿里云服务器环境(java环境+mysql+tomcat)和部署 JavaWeb 项目到云服务器(十分详细)
文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源. 购买一系列的东西 其实就是花钱买块区域,服务器,域名,云解析,花了好多money... 一. ...
- 【Web】JavaWeb项目为什么我们要放弃jsp?为什么要前后端解耦?为什么要前后端分离?2.0版,为分布式架构打基础。 - CSDN博客
前戏 前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦, 并且前后端分离会为以后的大型分布式架构.弹性计算架构.微服务 ...
- 不借助idea开发工具构建一个Javaweb项目
不借助idea开发工具构建一个Javaweb项目 目录结构 webappsroot|----------WEB-INF|----------classes(存放字节码)|----------lib(存 ...
- 如何创建一个javaWeb项目
一.使用IDEA创建一个javaweb项目 截图中文可以直接按照截图查看,未汉化可以根据提示来进行创建 1.File->New Project选择Web Application 然后填写好路径和 ...
- eclipse新建javaweb项目——javaweb系列(一)
eclipse新建javaweb项目--javaweb系列(一) 系列文章 eclipse新建javaweb项目--javaweb系列(一) eclipse下javaweb简单servlet调用--j ...
最新文章
- The Innovation | Volume 2 Issue 4 正式出版
- 基于并联SVM支持向量机训练HOG特征提取的人员目标提取
- 3.列表(一个打了激素的数组)
- 正则表达式基础知识及应用(用于个人学习以及回顾)
- python中自带的三个装饰器_python三个自带装饰器的功能与使用(@property、@staticmethod、@classmethod)...
- 消防荷载楼板按弹性还是塑性计算_现浇楼板裂缝处理办法全总结!
- 流式计算storm应用场景简介
- 随机数生成器python_Python中的随机数生成器
- python与中文的那点事
- datagrid数据导出到excel文件给客户端下载的几种方法(转)
- mate50 鸿蒙,华为Mate50Pro概念机:瀑布环绕屏+鸿蒙系统,就算涨价我也劝你买...
- 飞凌linux ip修改,linux下面建立GPRS无线MODEM拨号的方法
- 分段函数求导数,为什么分段点处一般用导数的定义求导
- 美式英语口语中连读、略读,音变的技巧
- 关于图片的多标签分类(1)
- C++ 设置桌面壁纸
- 013-zabbix trapper方式监控
- 手柄摇杆控制角色移动
- mysql5.1.35_在Windows上安装MySql 5.1.35 Noinstall版
- 漏洞与木马:如何保护您的网络安全