{"id":23087640,"url":"https://github.com/exp-codes/mojo-web-archetype","last_synced_at":"2025-08-08T23:06:39.886Z","repository":{"id":70890510,"uuid":"148517374","full_name":"EXP-Codes/mojo-web-archetype","owner":"EXP-Codes","description":"Maven项目规范骨架（Web版）","archived":false,"fork":false,"pushed_at":"2023-01-16T18:04:41.000Z","size":3223,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-03T16:49:12.524Z","etag":null,"topics":["maven","mvn","programming"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EXP-Codes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://lyy289065406.github.io/sponsor/"]}},"created_at":"2018-09-12T17:33:04.000Z","updated_at":"2023-05-03T14:56:52.000Z","dependencies_parsed_at":"2023-06-15T12:00:45.177Z","dependency_job_id":null,"html_url":"https://github.com/EXP-Codes/mojo-web-archetype","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/EXP-Codes/mojo-web-archetype","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EXP-Codes%2Fmojo-web-archetype","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EXP-Codes%2Fmojo-web-archetype/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EXP-Codes%2Fmojo-web-archetype/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EXP-Codes%2Fmojo-web-archetype/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EXP-Codes","download_url":"https://codeload.github.com/EXP-Codes/mojo-web-archetype/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EXP-Codes%2Fmojo-web-archetype/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269502567,"owners_count":24427790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["maven","mvn","programming"],"created_at":"2024-12-16T19:59:27.057Z","updated_at":"2025-08-08T23:06:39.843Z","avatar_url":"https://github.com/EXP-Codes.png","language":"Java","readme":"# mojo-web-archetype\r\nMaven项目规范骨架（Web版）\r\n\r\n------\r\n\r\n- 自动化构建项目（告别重复劳动）\r\n- 规范项目结构（只要创建，就是规范）\r\n- 自动管理依赖构件（告别构件版本混乱）\r\n- 一键发布项目/基线（告别dos/unix脚本命令）\r\n\r\n\r\n## 运行环境\r\n\r\n　![](https://img.shields.io/badge/Maven-3.2.5%2B-brightgreen.svg)  ![](https://img.shields.io/badge/JDK-1.7%2B-brightgreen.svg)\r\n\r\n\r\n## 软件介绍\r\n\r\n　快速创建一个规范架构的**Java Web项目（Maven版）**，使得**项目中自动内置**：\r\n\r\n- **Spring/SpringMVC架构**\r\n- [经验构件库](https://github.com/lyy289065406/exp-libs)：*用于快速开发的辅助包*\r\n- war项目发布插件：*第三方插件`maven-war-plugin`，用于快速发布一个可运行应用到生产环境*\r\n- 基线发布插件：*第三方插件`maven-release-plugin`，用于发布项目基线到版本库和 Nexus私服*\r\n\r\n\r\n\u003e 注：此骨架只能在J2EE中使用，若在J2SE中，会因为缺少Java Web组件而报错\r\n\r\n## 使用说明\r\n\r\n- 01.　本地已安装并部署好 `apache-maven-3.2.5`（或更高版本）\r\n- 02.　下载本骨架项目 `mojo-web-archetype` 到本地，拷贝 `mojo-web-archetype/conf/archetype-catalog.xml` 文件到 `apache-maven-3.2.5/conf` 目录下，若目录下已存在同名文件，则只需把 `archetype-catalog.xml` 的内容附加进去即可：\u003cbr/\u003e\r\n```\r\n\u003c!-- Maven骨架 --\u003e\r\n\u003carchetype\u003e\r\n  \u003cgroupId\u003eexp.libs\u003c/groupId\u003e\r\n  \u003cartifactId\u003emojo-web-archetype\u003c/artifactId\u003e\r\n  \u003cversion\u003e1.0\u003c/version\u003e   \u003c!-- 注意版本号要根据实际发布的骨架版本号调整 --\u003e\r\n  \u003crepository\u003ehttp://127.0.0.1:8081/nexus/content/repositories/releases\u003c/repository\u003e \u003c!-- 若本地部署了Nexus私服则如实填写，这是releases库 --\u003e\r\n\u003c/archetype\u003e\r\n\u003carchetype\u003e\r\n  \u003cgroupId\u003eexp.libs\u003c/groupId\u003e\r\n  \u003cartifactId\u003emojo-web-archetype\u003c/artifactId\u003e\r\n  \u003cversion\u003e1.0-SNAPSHOT\u003c/version\u003e  \u003c!-- 同名骨架可配置多个版本号，但只有最高版本生效 --\u003e\r\n  \u003crepository\u003ehttp://127.0.0.1:8081/nexus/content/repositories/snapshots\u003c/repository\u003e \u003c!-- 若本地部署了Nexus私服则如实填写，这是snapshots库 --\u003e\r\n\u003c/archetype\u003e\r\n```\r\n- 03.　通过 `maven install` 命令安装骨架到本地 Maven Repository\r\n- 04.　（可选）若本地部署了 Nexus 私服，可通过 `maven deploy` 命令直接发布骨架到私服\r\n- 05.　新建Maven项目，并选择此骨架进行项目构建：\u003cbr/\u003e\r\n![新建Maven项目](https://raw.githubusercontent.com/lyy289065406/mojo-web-archetype/master/doc/%E6%95%88%E6%9E%9C%E6%88%AA%E5%9B%BE/01-%E9%80%89%E6%8B%A9Maven%E9%AA%A8%E6%9E%B6.png)\r\n- 06.　填写项目必要信息：\u003cbr/\u003e\r\n![填写项目必要信息](https://raw.githubusercontent.com/lyy289065406/mojo-web-archetype/master/doc/%E6%95%88%E6%9E%9C%E6%88%AA%E5%9B%BE/02-%E5%A1%AB%E5%86%99%E9%A1%B9%E7%9B%AE%E4%BF%A1%E6%81%AF.png)\r\n- 07.　通过骨架所生成的项目，项目中会引用到 [`构件经验库 exp-libs`](https://github.com/lyy289065406/exp-libs) 的一些功能，其组织结构如下：\u003cbr/\u003e\r\n![通过骨架所生成的项目](https://raw.githubusercontent.com/lyy289065406/mojo-web-archetype/master/doc/%E6%95%88%E6%9E%9C%E6%88%AA%E5%9B%BE/03-%E7%94%9F%E6%88%90%E7%9A%84%E9%A1%B9%E7%9B%AE%E6%A8%A1%E6%9D%BF.png)\r\n- 08.　通过 `maven install` 在 `target` 目录直接发布war包（拷贝到tomcat即可运行）：\u003cbr/\u003e\r\n![发布可运行项目到生产环境](https://raw.githubusercontent.com/lyy289065406/mojo-web-archetype/master/doc/%E6%95%88%E6%9E%9C%E6%88%AA%E5%9B%BE/04-%E5%8F%91%E5%B8%83%E9%A1%B9%E7%9B%AE.png)\r\n\r\n\r\n## 运行效果\r\n\r\n　通过 `Run on Server` 方式可在 Eclipse 中直接运行项目（当然把war包放到tomcat运行也是可以的）：\r\n\r\n\u003e 注：在 web.xml 切换 spring 配置文件可测试不同的控制器效果\r\n\r\n\r\n![运行效果](https://raw.githubusercontent.com/lyy289065406/mojo-web-archetype/master/doc/%E6%95%88%E6%9E%9C%E6%88%AA%E5%9B%BE/05-%E8%BF%90%E8%A1%8C%E6%95%88%E6%9E%9C.png)\r\n\r\n\r\n## 补充：通过本骨架所生成示例项目的 pom.xml 与 web.xml 文件\r\n\r\n\u003e 点击 [这里](https://github-production-release-asset-2e65be.s3.amazonaws.com/148517374/e2d0c580-d2d5-11e8-8a97-a6ea0726b95d?X-Amz-Algorithm=AWS4-HMAC-SHA256\u0026X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20181018%2Fus-east-1%2Fs3%2Faws4_request\u0026X-Amz-Date=20181018T071339Z\u0026X-Amz-Expires=300\u0026X-Amz-Signature=b5eeaead55a227cead3d6fc4a7b92d8ab57a300a5aa0a3f6825132c84d3a7403\u0026X-Amz-SignedHeaders=host\u0026actor_id=17040287\u0026response-content-disposition=attachment%3B%20filename%3Ddemo-web-archetype.war\u0026response-content-type=application%2Foctet-stream) 下载示例项目\r\n\r\n\r\n- **pom.xml**\u003cbr/\u003e\r\n```xml\r\n\u003cproject xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\"\u003e\r\n    \u003cmodelVersion\u003e4.0.0\u003c/modelVersion\u003e\r\n\r\n    \u003c!--项目基本信息(必填)--\u003e\r\n    \u003cgroupId\u003eexp.libs\u003c/groupId\u003e\r\n    \u003cartifactId\u003edemo-web-archetype\u003c/artifactId\u003e\r\n    \u003cversion\u003e1.0-SNAPSHOT\u003c/version\u003e\r\n    \u003cpackaging\u003ewar\u003c/packaging\u003e\r\n\r\n    \u003cname\u003e项目名称(可选)\u003c/name\u003e\r\n    \u003cdescription\u003e项目描述(可选)\u003c/description\u003e\r\n    \u003curl\u003e项目SVN路径(可选)\u003c/url\u003e\r\n    \u003cinceptionYear\u003e工程的初始时间(可选)\u003c/inceptionYear\u003e\r\n\r\n    \u003c!--项目的问题管理系统(可选)--\u003e\r\n    \u003cissueManagement\u003e\r\n        \u003csystem\u003eEXPLIBS-API-ONLINE\u003c/system\u003e\r\n        \u003curl\u003ehttps://lyy289065406.github.io/api-online/\u003c/url\u003e\r\n    \u003c/issueManagement\u003e\r\n    \r\n    \u003c!--项目的问题追踪系统(可选)--\u003e\r\n    \u003cciManagement\u003e\r\n        \u003csystem\u003ejenkins\u003c/system\u003e\r\n        \u003curl\u003ehttp://127.0.0.1:8080/jenkins/\u003c/url\u003e\r\n    \u003c/ciManagement\u003e\r\n\r\n    \u003c!-- 软件配置管理 --\u003e\r\n    \u003cscm\u003e\r\n        \u003c!-- 项目SVN主干目录（需保证目录已存在） --\u003e\r\n        \u003cconnection\u003escm:svn:http://127.0.0.1:81/svn/release/???/trunk\u003c/connection\u003e\r\n        \u003cdeveloperConnection\u003escm:svn:http://127.0.0.1:81/svn/release/???/trunk\u003c/developerConnection\u003e\r\n        \u003curl\u003escm:svn:http://127.0.0.1:81/svn/release/???/trunk\u003c/url\u003e\r\n    \u003c/scm\u003e\r\n\r\n    \u003c!-- 变量定义 --\u003e\r\n    \u003cproperties\u003e\r\n        \u003cproject.build.sourceEncoding\u003eUTF-8\u003c/project.build.sourceEncoding\u003e\r\n        \u003cjdk.version\u003e1.6\u003c/jdk.version\u003e\r\n        \u003cspring.version\u003e3.1.2.RELEASE\u003c/spring.version\u003e\r\n        \u003cexplibs.version\u003e1.0\u003c/explibs.version\u003e\r\n    \u003c/properties\u003e\r\n\r\n\r\n    \u003c!-- 项目依赖 --\u003e\r\n    \u003cdependencies\u003e\r\n\r\n        \u003c!-- 经验库 --\u003e\r\n        \u003cdependency\u003e\r\n          \u003cgroupId\u003eexp.libs\u003c/groupId\u003e\r\n          \u003cartifactId\u003eexp-libs\u003c/artifactId\u003e\r\n          \u003cversion\u003e${explibs.version}\u003c/version\u003e\r\n        \u003c/dependency\u003e\r\n        \r\n        \u003c!-- Servlet --\u003e\r\n        \u003cdependency\u003e\r\n            \u003cgroupId\u003ejavax.servlet\u003c/groupId\u003e\r\n            \u003cartifactId\u003ejavax.servlet-api\u003c/artifactId\u003e\r\n            \u003cversion\u003e3.1.0\u003c/version\u003e\r\n        \u003c/dependency\u003e\r\n\r\n        \u003c!-- Spring MVC --\u003e\r\n        \u003cdependency\u003e\r\n            \u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\r\n            \u003cartifactId\u003espring-core\u003c/artifactId\u003e\r\n            \u003cversion\u003e${spring.version}\u003c/version\u003e\r\n        \u003c/dependency\u003e\r\n\r\n        \u003cdependency\u003e\r\n            \u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\r\n            \u003cartifactId\u003espring-beans\u003c/artifactId\u003e\r\n            \u003cversion\u003e${spring.version}\u003c/version\u003e\r\n        \u003c/dependency\u003e\r\n\r\n        \u003cdependency\u003e\r\n            \u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\r\n            \u003cartifactId\u003espring-context\u003c/artifactId\u003e\r\n            \u003cversion\u003e${spring.version}\u003c/version\u003e\r\n        \u003c/dependency\u003e\r\n\r\n        \u003cdependency\u003e\r\n            \u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\r\n            \u003cartifactId\u003espring-jdbc\u003c/artifactId\u003e\r\n            \u003cversion\u003e${spring.version}\u003c/version\u003e\r\n        \u003c/dependency\u003e\r\n\r\n        \u003cdependency\u003e\r\n            \u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\r\n            \u003cartifactId\u003espring-webmvc\u003c/artifactId\u003e\r\n            \u003cversion\u003e${spring.version}\u003c/version\u003e\r\n        \u003c/dependency\u003e\r\n\r\n        \u003cdependency\u003e\r\n            \u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\r\n            \u003cartifactId\u003espring-aop\u003c/artifactId\u003e\r\n            \u003cversion\u003e${spring.version}\u003c/version\u003e\r\n        \u003c/dependency\u003e\r\n\r\n        \u003cdependency\u003e\r\n            \u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\r\n            \u003cartifactId\u003espring-test\u003c/artifactId\u003e\r\n            \u003cversion\u003e${spring.version}\u003c/version\u003e\r\n        \u003c/dependency\u003e\r\n        \r\n        \u003cdependency\u003e\r\n            \u003cgroupId\u003ejavax.servlet.jsp.jstl\u003c/groupId\u003e\r\n            \u003cartifactId\u003ejstl-api\u003c/artifactId\u003e\r\n            \u003cversion\u003e1.2\u003c/version\u003e\r\n        \u003c/dependency\u003e\r\n        \r\n        \u003cdependency\u003e\r\n            \u003cgroupId\u003ejavax.servlet.jsp.jstl\u003c/groupId\u003e\r\n            \u003cartifactId\u003ejstl\u003c/artifactId\u003e\r\n            \u003cversion\u003e1.2\u003c/version\u003e\r\n            \u003cclassifier\u003esources\u003c/classifier\u003e\r\n        \u003c/dependency\u003e\r\n        \r\n        \u003c!-- 把Spring源代码中使用到的commons-logging替换成slf4j --\u003e\r\n        \u003cdependency\u003e  \r\n          \u003cgroupId\u003eorg.slf4j\u003c/groupId\u003e  \r\n          \u003cartifactId\u003ejcl-over-slf4j\u003c/artifactId\u003e  \r\n          \u003cversion\u003e1.7.12\u003c/version\u003e  \r\n        \u003c/dependency\u003e\r\n        \r\n        \u003c!-- logback for spring --\u003e\r\n        \u003cdependency\u003e\r\n          \u003cgroupId\u003eorg.logback-extensions\u003c/groupId\u003e  \r\n          \u003cartifactId\u003elogback-ext-spring\u003c/artifactId\u003e\r\n          \u003cversion\u003e0.1.2\u003c/version\u003e\r\n        \u003c/dependency\u003e\r\n\r\n        \u003c!-- 单元测试 --\u003e\r\n        \u003cdependency\u003e\r\n            \u003cgroupId\u003ejunit\u003c/groupId\u003e\r\n            \u003cartifactId\u003ejunit\u003c/artifactId\u003e\r\n            \u003cversion\u003e4.8.2\u003c/version\u003e\r\n            \u003cscope\u003etest\u003c/scope\u003e\r\n        \u003c/dependency\u003e\r\n\r\n    \u003c/dependencies\u003e\r\n\r\n\r\n    \u003c!-- 项目构建 --\u003e\r\n    \u003cbuild\u003e\r\n        \u003c!-- build目标文件的文件名, 默认情况下为${artifactId}-${version}  --\u003e\r\n        \u003cfinalName\u003edemo-web-archetype\u003c/finalName\u003e\r\n    \r\n        \u003cplugins\u003e\r\n\r\n            \u003c!-- 版本打包插件，在dos跳转到项目根目录，依次执行（需保证没有引用快照、本地与SVN服务器内容完全一致）: \r\n                1 发布基线到svn: mvn release:prepare \r\n                2 发布引用到私服 : mvn release:perform --\u003e\r\n            \u003cplugin\u003e\r\n                \u003cgroupId\u003eorg.apache.maven.plugins\u003c/groupId\u003e\r\n                \u003cartifactId\u003emaven-release-plugin\u003c/artifactId\u003e\r\n                \u003cversion\u003e2.3.2\u003c/version\u003e\r\n                \u003cconfiguration\u003e\r\n                    \u003c!-- 项目的SVN基线目录（需保证目录已存在） --\u003e\r\n                    \u003ctagBase\u003ehttp://172.168.27.5:81/svn/release/???/tags\u003c/tagBase\u003e\r\n                \u003c/configuration\u003e\r\n            \u003c/plugin\u003e\r\n\r\n            \u003c!-- 测试插件 --\u003e\r\n            \u003cplugin\u003e\r\n                \u003cgroupId\u003eorg.apache.maven.plugins\u003c/groupId\u003e\r\n                \u003cartifactId\u003emaven-surefire-plugin\u003c/artifactId\u003e\r\n                \u003cversion\u003e2.7.2\u003c/version\u003e\r\n                \u003cconfiguration\u003e\r\n                    \u003c!-- 解决控制台输出乱码问题 --\u003e\r\n                    \u003cforkMode\u003eonce\u003c/forkMode\u003e\r\n                    \u003cargLine\u003e-Dfile.encoding=UTF-8\u003c/argLine\u003e\r\n                    \u003csystemProperties\u003e\r\n                        \u003cproperty\u003e\r\n                            \u003cname\u003enet.sourceforge.cobertura.datafile\u003c/name\u003e\r\n                            \u003cvalue\u003etarget/cobertura/cobertura.ser\u003c/value\u003e\r\n                        \u003c/property\u003e\r\n                    \u003c/systemProperties\u003e\r\n                    \u003c!-- 项目打包时是否跳过d单元测试 --\u003e\r\n                    \u003cskipTests\u003etrue\u003c/skipTests\u003e\r\n                \u003c/configuration\u003e\r\n            \u003c/plugin\u003e\r\n\r\n            \u003c!-- 编译插件 --\u003e\r\n            \u003cplugin\u003e\r\n                \u003cgroupId\u003eorg.apache.maven.plugins\u003c/groupId\u003e\r\n                \u003cartifactId\u003emaven-compiler-plugin\u003c/artifactId\u003e\r\n                \u003cconfiguration\u003e\r\n                    \u003csource\u003e${jdk.version}\u003c/source\u003e\r\n                    \u003ctarget\u003e${jdk.version}\u003c/target\u003e\r\n                    \u003cencoding\u003e${project.build.sourceEncoding}\u003c/encoding\u003e\r\n                    \u003cshowWarnings\u003etrue\u003c/showWarnings\u003e\r\n                \u003c/configuration\u003e\r\n            \u003c/plugin\u003e\r\n\r\n            \u003c!-- war打包插件 --\u003e\r\n            \u003cplugin\u003e\r\n                \u003cartifactId\u003emaven-war-plugin\u003c/artifactId\u003e\r\n                \u003cversion\u003e2.4\u003c/version\u003e\r\n                \u003cconfiguration\u003e\r\n                    \u003cwarName\u003e${project.artifactId}\u003c/warName\u003e\r\n                    \u003cwarSourceDirectory\u003eWebRoot\u003c/warSourceDirectory\u003e\r\n                    \u003cfailOnMissingWebXml\u003efalse\u003c/failOnMissingWebXml\u003e\r\n                \u003c/configuration\u003e\r\n            \u003c/plugin\u003e\r\n\r\n        \u003c/plugins\u003e\r\n\r\n    \u003c/build\u003e\r\n\r\n    \u003c!-- 项目发布管理 --\u003e\r\n    \u003cdistributionManagement\u003e\r\n\r\n        \u003c!-- 私服地址 ，公司级基线仓库 --\u003e\r\n        \u003crepository\u003e\r\n            \u003cid\u003eReleases\u003c/id\u003e\r\n            \u003curl\u003ehttp://127.0.0.1:8081/nexus/content/repositories/releases\u003c/url\u003e\r\n        \u003c/repository\u003e\r\n\r\n        \u003c!-- 私服地址 ，公司级快照仓库 --\u003e\r\n        \u003csnapshotRepository\u003e\r\n            \u003cid\u003eSnapshots\u003c/id\u003e\r\n            \u003curl\u003ehttp://127.0.0.1:8081/nexus/content/repositories/snapshots\u003c/url\u003e\r\n        \u003c/snapshotRepository\u003e\r\n    \u003c/distributionManagement\u003e\r\n\r\n\u003c/project\u003e\r\n\r\n```\r\n\r\n- **web.xml**\u003cbr/\u003e\r\n```xml\r\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\r\n\u003cweb-app xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns=\"http://java.sun.com/xml/ns/javaee\"\r\n    xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd\"\r\n    id=\"WebApp_ID\" version=\"3.0\"\u003e\r\n\r\n    \u003c!-- web-app显示名称 --\u003e\r\n    \u003cdisplay-name\u003edemo-web-archetype\u003c/display-name\u003e\r\n\r\n\r\n    \u003c!-- 默认首页 --\u003e\r\n    \u003cwelcome-file-list\u003e\r\n        \u003cwelcome-file\u003eindex.html\u003c/welcome-file\u003e\r\n        \u003cwelcome-file\u003eindex.htm\u003c/welcome-file\u003e\r\n        \u003cwelcome-file\u003eindex.jsp\u003c/welcome-file\u003e\r\n    \u003c/welcome-file-list\u003e\r\n\r\n\r\n    \u003c!-- 字符集过滤器 : 处理页面乱码问题 --\u003e\r\n    \u003cfilter\u003e\r\n        \u003cfilter-name\u003eencodingFilter\u003c/filter-name\u003e\r\n        \u003cfilter-class\u003eorg.springframework.web.filter.CharacterEncodingFilter\u003c/filter-class\u003e\r\n        \u003cinit-param\u003e\r\n            \u003cparam-name\u003eencoding\u003c/param-name\u003e\r\n            \u003cparam-value\u003eUTF-8\u003c/param-value\u003e\r\n        \u003c/init-param\u003e\r\n    \u003c/filter\u003e\r\n    \u003cfilter-mapping\u003e\r\n        \u003cfilter-name\u003eencodingFilter\u003c/filter-name\u003e\r\n        \u003curl-pattern\u003e/*\u003c/url-pattern\u003e\r\n    \u003c/filter-mapping\u003e\r\n\r\n\r\n    \u003c!-- 加载logback日志配置 --\u003e\r\n    \u003ccontext-param\u003e  \r\n        \u003cparam-name\u003elogbackConfigLocation\u003c/param-name\u003e  \r\n        \u003cparam-value\u003eclasspath:logback.xml\u003c/param-value\u003e  \r\n    \u003c/context-param\u003e  \r\n    \u003clistener\u003e  \r\n        \u003clistener-class\u003ech.qos.logback.ext.spring.web.LogbackConfigListener\u003c/listener-class\u003e  \r\n    \u003c/listener\u003e  \r\n    \r\n\r\n    \u003c!-- 表示工程默认以spring的方式启动 --\u003e\r\n    \u003c!-- 注：这是[非SpringMVC]架构的配置, 若希望直接使用SpringMVC, 则无视此配置项即可 --\u003e\r\n    \u003clistener\u003e\r\n        \u003clistener-class\u003eorg.springframework.web.context.ContextLoaderListener\u003c/listener-class\u003e\r\n    \u003c/listener\u003e\r\n    \u003ccontext-param\u003e     \u003c!-- 指定spring配置文件(若无指定则启动时默认会在/WEB-INF目录下查找applicationContext.xml) --\u003e\r\n        \u003cparam-name\u003econtextConfigLocation\u003c/param-name\u003e\r\n        \u003cparam-value\u003e   \u003c!-- classpath指代WEB-INF下的classes与lib目录, 优先级lib大于classes --\u003e\r\n          classpath*:applicationContext*.xml    \u003c!-- 这是全局的, 应用于多个servlet --\u003e\r\n        \u003c/param-value\u003e\r\n    \u003c/context-param\u003e\r\n    \r\n\r\n    \u003c!-- 使得工程具备SpringMVC特性 --\u003e\r\n    \u003cservlet\u003e\r\n        \u003cservlet-name\u003eSpringMVC\u003c/servlet-name\u003e\r\n        \u003cservlet-class\u003eorg.springframework.web.servlet.DispatcherServlet\u003c/servlet-class\u003e\r\n\r\n        \u003c!-- 指定配置文件(若不配置则默认在/WEB-INF目录下查找XXX-servlet.xml作为配置文件) --\u003e\r\n        \u003cinit-param\u003e\r\n            \u003cparam-name\u003econtextConfigLocation\u003c/param-name\u003e  \r\n            \u003cparam-value\u003e      \u003c!-- 仅仅SpringMVC使用的配置文件, 四选一即可 --\u003e\r\n                 \u003c!-- classpath*:spring-bean.xml --\u003e    \u003c!-- 基于BeanName-URL方式配置的Controller --\u003e \r\n                 \u003c!-- classpath*:spring-class.xml --\u003e   \u003c!-- 基于ClassName方式配置的Controller --\u003e \r\n                 classpath*:spring-mvc.xml              \u003c!-- 基于注解方式配置的Controller --\u003e \r\n                 \u003c!-- classpath*:spring-url.xml --\u003e     \u003c!-- 基于Simple-URL方式配置的Controller --\u003e \r\n            \u003c/param-value\u003e\r\n        \u003c/init-param\u003e\r\n        \u003cload-on-startup\u003e1\u003c/load-on-startup\u003e    \u003c!-- 表示启动容器时初始化该Servlet --\u003e\r\n    \u003c/servlet\u003e\r\n    \u003cservlet-mapping\u003e\r\n        \u003cservlet-name\u003eSpringMVC\u003c/servlet-name\u003e  \u003c!-- 表示哪些请求交给SpringMVC处理, \"/\"表示此为其他servlet都匹配不到时的缺省模式 --\u003e\r\n        \u003curl-pattern\u003e/\u003c/url-pattern\u003e    \u003c!-- 可以配置为诸如\"*.html\"表示拦截所有以html为扩展名的请求 --\u003e\r\n    \u003c/servlet-mapping\u003e\r\n\r\n\r\n    \u003c!-- 用于测试demo中的SpringMVC跳转(可删除) --\u003e\r\n    \u003cservlet\u003e\r\n        \u003cservlet-name\u003eTestSpringMVC\u003c/servlet-name\u003e\r\n        \u003cjsp-file\u003e/WEB-INF/pages/demo-mvc-request.jsp\u003c/jsp-file\u003e\r\n    \u003c/servlet\u003e\r\n    \u003cservlet-mapping\u003e\r\n        \u003cservlet-name\u003eTestSpringMVC\u003c/servlet-name\u003e\r\n        \u003curl-pattern\u003e/demo-spring-mvc\u003c/url-pattern\u003e\r\n    \u003c/servlet-mapping\u003e\r\n    \r\n\u003c/web-app\u003e\r\n\r\n```\r\n\r\n\r\n## 版权声明\r\n\r\n　[![Copyright (C) 2016-2019 By EXP](https://img.shields.io/badge/Copyright%20(C)-2016~2019%20By%20EXP-blue.svg)](http://exp-blog.com)　[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\r\n  \r\n\r\n- Site: [http://exp-blog.com](http://exp-blog.com) \r\n- Mail: \u003ca href=\"mailto:289065406@qq.com?subject=[EXP's Github]%20Your%20Question%20（请写下您的疑问）\u0026amp;body=What%20can%20I%20help%20you?%20（需要我提供什么帮助吗？）\"\u003e289065406@qq.com\u003c/a\u003e\r\n\r\n\r\n------\r\n","funding_links":["https://lyy289065406.github.io/sponsor/"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexp-codes%2Fmojo-web-archetype","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexp-codes%2Fmojo-web-archetype","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexp-codes%2Fmojo-web-archetype/lists"}