web项目典型的工程目录结构和build.xml

--yourproject
--src d
--java d 运行的java源代码
--test d 单元测试的源代码
--configs d 配置文件
--lib d 开发需要的lib(里面通常是运行时不需要的jar)
--build.propertis f (ant的)
--build.xml f (ant)
--document d (项目的设计文档、数据库设计文档等)
--WEB-INF d
--classes d
--lib d (运行时需要的jar,当然开发肯定也需要该lib)
--dist d (打成jar、war的存放路径)
--css d
--js d
--view d (模板文件 。jsp,mv)
--images d


--yourproject
--src d
--java d 运行的java源代码
--test d 单元测试的源代码
--configs d 配置文件
--lib d 开发需要的lib(里面通常是运行时不需要的jar)
--build.propertis f (ant的)
--build.xml f (ant)
--document d (项目的设计文档、数据库设计文档等)
--context
--WEB-INF d
--classes d
--lib d (运行时需要的jar,当然开发肯定也需要该lib)
--dist d (打成jar、war的存放路径)
--css d
--js d
--view d (模板文件 。jsp,mv)
--images d

1.缩进表示目录层次结构
2.d表示是目录
3.f表示普通的文件,非目录


build.properties

##项目名称
project=com-apache-projectName
#项目版本
version=2.6.1
#项目根目录
project.home=.
#存放源文件(.java)目录
src.dir=${project.home}/src
#存放编译后的文件(.class)的目录
classes.dir=${project.home}/context/WEB-INF/classes
#存放jar的目录,这个lib存放的是运行环境时需要到jar
lib.dir=${project.home}/context/WEB-INF/lib
#开发环境需要的jar。比如junit的jar,一些mock
build.lib.dir=lib
#项目jar、war包的存放目录
dist.dir=dist
#配置文件的存放目录,
configs.dir=${src.dir}/configs


build.xml

<?xml version="1.0" encoding="GB2312" ?>

<project name="metis" default="init" basedir=".">
<property file="build.properties" />
<!-- build的classPath -->
<path id="build.classpath">
<fileset dir="${build.lib.dir}" includes="**/*.jar">
</fileset>
</path>
<!-- 运行的classPath -->
<path id="runtime.classpath">
<fileset dir="${lib.dir}" includes="*.jar">
</fileset>
<fileset dir="${build.lib.dir}" includes="*.jar">
</fileset>
</path>

<!--初始化,通常情况就是创建目录 -->
<target name="init">
<mkdir dir="${classes.dir}" />
<mkdir dir="${dist.dir}" />
</target>
<!-- 编译源文件,并且把configs下的配置文件也复制到classes下 -->
<target name="compile" depends="init">
<copy todir="${classes.dir}">
<fileset dir="${configs.dir}">
<include name="*" />
</fileset>
<fileset dir="${src.dir}/resource">
<include name="*" />
</fileset>
</copy>
<javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="runtime.classpath" debug="true" />
</target>

<!-- 把项目打成jar包,所有编译好的*.class打成一个jar,里面仅仅包含.jar -->
<target name="jar" depends="compile">
<jar jarfile="${dist.dir}/${project}-${version}.jar">
<fileset dir="${classes.dir}">
<include name="com/dukuai/**" />
<exclude name="com/dukuai/**/Test*.class" />
<exclude name="com/dukuai/**/*Tests.class" />
<exclude name="com/dukuai/module/test/**" />
<exclude name="com/dukuai/test/**" />
</fileset>
</jar>
<copy todir="${lib.dir}">
<fileset dir="${dist.dir}">
<include name="${dist.dir}/${project}-${version}.jar" />
</fileset>
</copy>
</target>

<!-- 源码包。 -->
<target name="srcjar">
<jar jarfile="${dist.dir}/${project}-${version}-src.jar">
<fileset dir="${src.dir}/java">
<include name="com/dukuai/**" />
<exclude name="com/dukuai/**/Test*.java" />
<exclude name="com/dukuai/**/*Tests.java" />
<exclude name="com/dukuai/module/test/**" />
</fileset>
</jar>
</target>

<!-- 导出工程,运行的工程,不包含源文件等 -->
<target name="project">
<delete dir="${dist.dir}/${project}-${version}-project.jar" />
<jar jarfile="${dist.dir}/${project}-${version}-project.jar">
<fileset dir="${project.home}">
<include name="bin/**" />
<include name="context/**" />
<include name="doc/**" />
<include name="logs/**" />
<include name="src/**" />
<include name="testcase/**" />
<include name="build.properties" />
<include name="build.xml" />
<include name="INSTALL" />
<include name="README" />
</fileset>
</jar>
</target>

<target name="clean">
<delete dir="${classes.dir}" />
</target>
</project>


通常的工程还要包含其他的target,eg. testcase、测试覆盖率等。
SpringBootWeb案例(结合Mybatis) 前面我们已经完了基础的分页查询,大家会发现:分页查询功能编写起来比较繁琐。在Mapper接口中定义两个方法执行两条不同的SQL语句:查询总记录数指定页码的数据列表在Service当中,调用Mapper接口的两个方法,分别获取:总记录数、查询结果列表,然后在将获取的数据结果封装到PageBean对象中。大家思考下:在未来开发其他项目,只要涉及到分页查询功能(例:订单、用户、支付、商品),都必须按照以上操作完成功能开发结论:原始方式的分页查询,存在着"步骤固定"、"代码频繁"的问题。 阅读详情

相关推荐

Spring Boot智慧养老平台:Java毕设选题到答辩全流程解析

在Java Web开发中,Spring Boot凭借自动配置和生态优势成为企业级应用的主流框架,也是毕业设计的高频选题方向。以智慧养老平台为例,系统围绕养老机构的信息化管理需求,构建了长者档案、健康管理、护理任务、费用账单等核心业务闭环。基于RBAC权限模型实现管理员、员工、家属三类角色的差异化数据访问,并结合MyBatis-Plus完成多表关联与聚合查询,通过JWT或Session机制保障登录安全。项目采用Spring Boot 3 + Thymeleaf + MySQL技术栈,兼顾开发效率与答辩演示效果

weixin_30673611的博客 366

build.xml的编写

Ant工具是非常有用的工程部署工具,可以自动编译java项目,自动对文件进行打包,则我们可以只需要提交代码,打包直接执行命令就可以,所以非常实用。Ant工具直接作用到build.xml文件,所以对于build.xml文件进行直接配置。build.xml文件的组成结构一般来说,build.xml文件的头元素为<project>,然后包括三个子元素: property path和classpath ta

DFL_always的专栏 915

Spring Boot + Redis 在线小说阅读平台:从数据建模到缓存实战

在Java后端开发中,CRUD只是基本功,真正拉开差距的是对缓存、索引、并发等工程问题的理解。在线小说阅读平台作为典型的业务系统,涵盖了用户认证、书籍管理、章节阅读、书架同步等完整链路,是练手和面试准备的优质题材。从技术原理上看,Spring Boot 2.7搭配MyBatis Plus能快速实现业务层,而Redis则承担查询缓存、排行榜、分布式锁等多重角色,解决高并发场景下的性能瓶颈。本文从数据模型设计出发,拆解书籍与章节的强父子关系、阅读进度的高频写入、书架的一致性等核心难点,并针对缓存穿透、击穿、雪崩

weixin_33979203的博客 457

WEB应用的目录结构及其在TOMCAT容器中的发布

WEB应用的目录结构及其在TOMCAT容器中的发布

RogerFedererGO的博客 1033

ant编译java web的build.xml文件

NULL 博文链接:https://yizhenn.iteye.com/blog/2085063

ant编译java web工程build.xml配置文件

介绍了如何通过ant进行java web工程的编译操作的详细配置

Web项目build.xml

cyl937的专栏 1428

基于FPGA的图像预处理系统(图)

 北京机械工业学院 韩娟娟 邓文怡 娄小平 由于获取图像的工具或手段的影响,使获取图像无法完全体现原始图像的全部信息。因此,对图像进行预处理就显得非常重要。预处理的目的是改善图像数据,抑制不需要的变形或者增强某些对于后续处理来说比较重要的图像特征。通常根据预处理目的的不同,把预处理技术归为图像增强技术和图像分割技术两类。图像对比度处理是空间域图像增强的一种方法。由于图像灰度范围狭窄会使

lyzhangxianglove的专栏 1780

IDEA ant 生成javaWeb项目的jar包build.xml文件模板

IDEA ant 生成javaWeb项目的jar包build.xml文件参考模板

liangbao568的博客 1518

基于决策树的英雄联盟比赛胜负预测(含完整代码)

在代码中设置随机种子(例如 RANDOM_SEED = 2024)的主要目的是为了确保每次运行代码时,随机过程的结果是一致的。通过绘制不同参数组合下的准确率图,直观地展示了参数对模型性能的影响,帮助读者更好地理解和选择合适的参数。通过设置相同的随机种子(伪随机数),可以确保每次运行代码时,随机数生成器生成的随机数序列是相同的。如果在开发过程中遇到问题,设置固定的随机种子可以帮助你更容易地定位问题,因为每次运行代码时的数据和结果都是一样的。在科学研究和实验中,结果的可重复性是非常重要的。

oisflo的博客 1919

基于STM32的智能盆栽管家系统设计与实现(开题报告2)

本文设计了一种基于STM32的智能盆栽管家系统,旨在解决传统盆栽养护依赖人工、效率低下的问题。系统以STM32为核心,集成土壤湿度、温湿度及光照传感器,通过WiFi模块实现数据上传与远程控制,配备OLED显示屏本地显示,并利用继电器控制水泵与补光灯实现自动化养护。软件方面开发嵌入式程序、安卓APP及云平台,支持数据采集、远程监控和智能决策。相比现有产品,本系统具有成本低、扩展性强等优势,可满足家庭用户对植物精细化管理的需求。研究计划12周完成,包括硬件设计、软件开发、系统测试等环节,最终形成一套完整的智能盆

毕业作品网站 474

Java web工程目录结构中src、Libraries、build、WebContent、META-INF、WEB-INF的作用简述

WebContent:项目访问的默认路径,eclipse会将该目录下的所有文件发送到tomcat的web apps文件夹下。META-INF:用来配置应用程序、拓展程序、类加载器和服务manifest.mf文件,在用jar打包时自动生成。WEB-INF:Java的web应用的安全目录,客户端无法访问。WEB-INF/classes:存放编译后的class文件。WEB-INF/web.xml:项目全局配置文件。WEB-INF/lib:存放项目使用的jar包。src:存放Java源程序。

qq_65055255的博客 3335

TI毫米波雷达人体生命体征(呼吸、心跳)信号提取算法(IWR6843ISK+DCA1000EVM)

本篇内容介绍的算法主要为传统的提取算法,但可实现在1m内呈现良好的检测效果,能够提取出非常可观的呼吸和心跳波形,但在超出1m的距离后便不适用这个算法了。远距离检测呼吸和心跳始终是这个领域一个很大的挑战。要实现远距离检测可在提取相位信号、分离呼吸和心跳信号上进行改进处理,例如线性解调提取相位、改进的VMD分离呼吸和心跳算法。

m0_61934621的博客 3万+

Maven– HelloWorld实例

Maven– HelloWorld实例 maven安装好后,可以通过HelloWorld项目来体验一下maven是如何构建项目的。Maven项目的核心是pom.xml(就像Ant的build.xml一样),用来构建和发布项目。我们所说的建立maven项目,其实就是建立java项目或web项目,和普通项目不同的是,maven项目的工程目录结构需要按照maven的标准进行建立,并且带有pom.x...

weixin_34088583的博客 151

Cadence IC618/Spectre231安装避坑指南:详解环境变量配置与License管理那些事儿

本文深入解析Cadence IC618/Spectre231安装过程中的环境变量配置与License管理难题,提供从变量冲突解决到高效License管理的实用方案。针对常见的64位标识冲突、路径污染及License服务器连接问题,给出具体诊断步骤和优化建议,帮助用户构建稳定可靠的EDA环境。

weixin_33737134的博客 616

EMC基础知识总结

电磁干扰(Electromagnetic Interference),简称EMI,有和两种。传导干扰主要是电子设备产生的干扰信号通过导电介质或公共电源线互相产生干扰;辐射干扰是指电子设备产生的干扰信号通过空间耦合把干扰信号传给另一个电网络或电子设备。

学海无涯的专栏 1369

Debug/Release配置指南:从Gradle到Keil的profile实战

在软件开发中,同一份代码如何在不同场景下自动切换行为?这依赖于一套贯穿构建、运行与发布的profile机制。debug与release并非简单的编译器开关,而是涵盖优化级别、宏定义、依赖作用域、日志级别与API地址的完整配置集合。理解这一原理,能帮助开发者高效管理多环境工程,避免手动改参带来的混乱。无论是Java后端通过Maven的-P参数切换环境,Android工程利用Gradle的buildTypes与productFlavors组合出构建变体,还是嵌入式Keil中Target级别的隔离,抑或前端通过V

cuibinmo3519的博客 330

50、压电微泵与技术设备驱动的研究分析

本文研究了压电微泵在弹性微通道中的流体流动特性及技术设备驱动的振动行为。通过建立轴对称流固耦合模型,利用FreeFem++进行数值模拟,分析了不同数量压电致动器和频率对微泵流量的影响,发现多个致动器按特定时序压缩可产生净正向流量,并提出了稳态流量的近似解析公式。同时,针对技术设备驱动系统,探讨了周期性负载引起的强迫振动特性,明确了共振条件及影响因素,并比较了主动、被动和优化设计等振动控制策略。最后展望了实验验证、多物理场耦合与智能控制等未来研究方向,为相关设备的优化设计与高效运行提供了理论支持。

convnet3designer的博客 148

AI原生语言设计:仓颉编程语言的AI亲和化探索

随着大模型与AI应用走向工程化,传统“Python+框架”的开发模式在性能、并发和部署上逐渐显露出瓶颈。AI原生语言设计正是在这一背景下提出,强调从语言底层支持张量计算、并发调度与编译期检查,以降低AI项目的开发与交付成本。仓颉作为华为主导的面向全场景AI的编程语言,通过多范式融合、原生编译和中文标识符等特性,尝试将数据预处理、模型推理与系统服务统一到同一条工具链中。其生态也在快速演进,围绕仓颉skill、开源仓颉2.0等热词形成的技能封装、版本升级与在线体验,正逐步补齐从编译器到应用组件的闭环。对于关注A

weixin_30387423的博客 400

3️⃣ Coze工作流基础教学(2025年全新版本)

Coze 工作流作为扣子平台的重磅工具,利用可视化节点,如大语言模型、插件、条件判断等,把复杂任务巧妙拆解成多步骤流程。它不仅支持自动化编排,还能实现跨系统协同,有效提升处理效率与输出稳定性。在那些对准确性或格式有严格要求的场景中,比如报告生成、旅行规划,Coze 工作流更是发挥着关键作用。

李同学Lino的博客 5855

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java build.xml_build.xml详解

Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。一.安装与配置下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本。解压到某个目录(例如E:"apache-ant-1.7.0),即可使用。添加系统环境变量:ANT_HO...

weixin_31714033的博客 4171

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Eclipse 配置web工程的build

    最近在部署web项目得时候,不知道怎么搞了下,发现项目部署总是失败,找不到class文件,web.xml的位置也总是不对。然后研究了几个小时查了些资料才搞定,现在记录下来共享给大家。    1.tomcat部署servlet的包结构    tomcat是servlet的容器,它为servlet提供了通信的能力,servlet是tomcat容器的组件,实现了具体的web功能。那么要在tomc...

tony_java_2017的博客 7950

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java中标准的build.xml配置文件

basedir= "D:\selenium\AutoTest" default="build" name="AutoTest" >               name="src" value="src\CommonMain"/>      name="build" value="build"/>      name="lib" value="lib"/>      name="dist

Lily_XL的博客 3920

eclipse中创建的web项目后,怎么手动添加web.xml

。。。

yjysunshine的博客 4887
上一篇: java Shutdown Hooks的使用
下一篇: linux实用命令
badonly
博客等级 码龄19年 0粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值