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

python-snap7 报错:can‘t find snap7 library. If installed, try running ldconfig

1、使用场景: Python 读取西门子 S7 系列 PLC 信息,会用到 snap7 库,网上也有很多案例。但是,运行时会报错:can't find snap7 library. If installed, try running ldconfig 2、解决方案: A、下载项目需要依赖的 dll、lib 文件: i、Sourceforge下载:https://sourceforge.net/projects/snap7/files/ ii、优快云下载(免费):https://dow.

蜡笔小新历险记的博客 3649

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

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

liangbao568的博客 1518

我用两个月时间,终于把优快云付费资源项目玩明白了!

关于项目的定位,这是一个知识付费项目,根据市场研究机构的数据显示,到2023年,全球知识付费市场规模将达到2000亿美元,所以说知识付费的前景是十分广阔的,当下互联网时代信息大爆炸,80后、90后、00后群体对知识付费的认可度也大幅提升,同时这群作为知识付费的主流人群已经具备了更强的消费能力,而且对于知识付费的需求更高。目前整个知识付费领域仍然在发展起步的初期,尽快在知识付费领域布局可以帮助我们在这波红利中获得一份不错的收益。而且个人认为,

白话机器学习 2万+

MFC 利用soap 调用web service

MFC 利用soap 调用web service

congjiaoyan3682的博客 785

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

【NTN 卫星通信】使用地面网络和卫星网络接入的终端应用场景

卫星接入有广覆盖的特点, 可以改善地面接入网覆盖或无线条件差的地区(例如多径干扰)的服务可用性。对于高速移动中需要实时业务的终端,如IMS语音/视频会议,可以通过地面接入和卫星接入同时实现与5G系统的双连接,在地面接入网不可用的情况下获得连续可靠的业务。

weixin_43603524的博客 2558

Maven– HelloWorld实例

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

weixin_34088583的博客 151

抽象代数学习笔记(抽象代数的历史、运算)

1. 抽象代数历史 对于五次及以上的代数方程是否存在根式解这个问题,欧拉、拉格朗日、高斯等数学家都没得到答案,但是他们得出五次及以上的代数方程组不存在根式解的结论。19世纪初,阿贝尔提出五次及以上的代数方程不存在根式解,并找出一类特殊的五次及以上的代数方程可以用根式解表示出来。另外一个年轻的数学家伽罗华...

huangzhpei的博客 3668

如何使用 ESP32 CAM 进行自动车牌识别 (ANPR)

用于提取 JSON 值并在 OLED 上显示文本的函数。有一个可用的函数,即 extractJsonStringValue 来提取字符串值。它是独立函数,但您仍然可以使用一些 JSON 库来执行相同的功能。

jkh920184196的博客 1304

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

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

cuibinmo3519的博客 330

Opus Clip AI技术浅析(一)

Opus Clip AI 是一款由Opus公司推出的AI视频剪辑工具,旨在通过人工智能技术简化视频编辑过程,帮助用户快速从长视频中提取精彩片段,并生成适合社交媒体分享的短视频。

m0_75253143的博客 2152

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

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

weixin_30387423的博客 400

【C++】【STL算法】数据窄化及代码安全性

本文系统探讨了C++工程中数据窄化(narrowing conversion)的隐患与解决方案。数据窄化指将高精度/大范围类型转换为低精度/小范围类型,虽语法合法但会导致静默精度损失。其危险性体现在:错误隐蔽、STL会放大问题、数值错误具有传播性。现代C++要求窄化必须显式声明,文中提出四种工程解决方案:显式转换、边界统一转换、范围检查转换和使用GSL工具。建议在系统边界集中处理窄化,保持计算链路类型一致性,并通过分层策略(建模用double,控制用float)确保数值稳定性。核心思想是让窄化成为清晰可控的

Double Galaxy 80

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Eclipse 配置web工程的build

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

tony_java_2017的博客 7950

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

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、付费专栏及课程。

余额充值