这是一个或许对你有用的社群 一对一交流/面试小册/简历优化/求职解惑欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料《项目实战视频》从书中学往事中“练”《互联网高频面试题》面朝简历学习春暖花开《架构 x 系统设计》摧枯拉朽掌控面试高频场景题《精进 Java 学习指南》系统学习互联网主流技术栈《必读 Java 源码专栏》知其然知其所以然这是一个或许对你有用的开源项目国产Star破10w的开源项目前端包括管理后台、微信小程序后端支持单体、微服务架构RBAC权限、数据权限、SaaS多租户、商城、支付、工作流、大屏报表、ERP、CRM、AI大模型、IoT物联网等功能多模块https://gitee.com/zhijiantianya/ruoyi-vue-pro微服务https://gitee.com/zhijiantianya/yudao-cloud视频教程https://doc.iocoder.cn【国内首批】支持 JDK17/21SpringBoot3、JDK8/11Spring Boot2双版本来源blog.csdn.net/qq_46987323前言1.Maven插件2.构建Maven工程3.pom文件配置4.编写代码5.依赖范围6.总结前言在 Java 生态中Maven 是工程化开发的核心基石。它以标准化流程解决依赖管理与构建繁琐问题让项目从代码到交付的链路清晰可控。本文聚焦 Maven 工程开发核心环节从 Maven 插件配置、工程构建步骤到 pom 文件关键配置逻辑再到代码编写要点与依赖范围规则。掌握这套体系不仅能驾驭工具更能建立工程化思维在团队协作与项目迭代中实现高效开发。基于 Spring Boot MyBatis Plus Vue Element 实现的后台管理系统 用户小程序支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能项目地址https://github.com/YunaiV/ruoyi-vue-pro视频教程https://doc.iocoder.cn/video/1.Maven插件Maven 插件用于扩展 Maven 核心能力setting -- 输入 maven -- 修改安装路径配置文件路径修改本地仓库路径其中的第二个“配置文件路径”要配置到Settings.xml这就配置好Maven插件了但是这个配置好了后只能在当前项目中有用在新的项目中又要重新配置了新建新项目时就会自动配置好maven插件的方法file --- New Projects Setup --- Settings for New Projects...再按照刚刚那个方法配置一遍之后再创建项目时就会沿用这个Maven配置(๑•̀ㅂ•́)و✧maven工程就是可以使用Maven来管理的工程基于 Spring Cloud Alibaba Gateway Nacos RocketMQ Vue Element 实现的后台管理系统 用户小程序支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能项目地址https://github.com/YunaiV/yudao-cloud视频教程https://doc.iocoder.cn/video/2.构建Maven工程接下来我们构建一个Maven的Web工程1.打开 idea选择创建一个新工程2.选择Maven工程并使用maven的web工程模板3.手动添加src/main/java目录此时该目录还不能写Java代码可以看到这个目录和之前讲的目录还有一些没有创建出来那么我们就要手动创建了要给每个文件夹功能4.添加文件如果main下的java文件夹里不能用写java文件那么就右击文件夹在最下方选择“Sources Root”就可以写java文件了test中的文件夹一般是会自动配置为测试文件夹Sources Root源码根存放.java等可编译代码如src/main/javaTest Sources Root测试源码根存放 JUnit 测试类如src/test/javaResources Root资源根存放配置.properties、静态资源如图片Test Resources Root测试资源根存放测试配置文件如src/test/resourcesExcluded排除目录忽略构建输出如target以提升性能3.pom文件配置简单来说他的作用pom.xml 是 Maven 项目的 “说明书”用来写清楚项目要啥依赖、怎么打包让大家按统一规矩干活避免版本混乱和重复操作pom文件最上方是项目基本信息解释标签含义参数定义内容规则 / 说明示例groupId项目组名反向域名格式com.yibeigenartifactId项目名小写字母my-projectversion版本号三段式重大升级。新功能.bug 修复1.2.3packaging打包方式如 jar、war 等jar3.1.properties中定义一些配置信息没有的话就添加进去即可这里的第二个是java版本根据自己的java版本来改我这里是1.8版本的就写1.8 如果你是jdk11那就把1.8改成 11 就OK了properties !-- 编码格式 -- project.build.sourceEncodingUTF-8/project.build.sourceEncoding !-- 编译时使用的JAVA版本 -- maven.compiler.source1.8/maven.compiler.source maven.compiler.target1.8/maven.compiler.target /properties3.2.dependencies中定义依赖的jar包坐标因为javaweb项目所以要用到servlet 和 jsp的jar包因此就要这两个的坐标由于项目是web项目需要写Servlet和JSP所以需要引入Servlet和JSP的依赖。查找依赖坐标的网站https://mvnrepository.com/1. 搜索Servlet --- 单击Java Servlet API2. 里面的版本可以自己选我选的是3.0.1的单击进去复制如图的代码即可往下划一下3. 复制到pom文件的 dependencies 标签中这里先删除最后一个jsp也是一样的操作也可以直接复制我写的这个代码因为都是写死的代码放到pom文件中后还要让 maven 来做加载一般在右侧可以打开maven!-- 依赖的jar包坐标 -- dependencies !-- servlet依赖 -- dependency !-- 项目组名 -- groupIdjavax.servlet/groupId !-- 项目名 -- artifactIdjavax.servlet-api/artifactId version3.0.1/version /dependency !-- jsp依赖 -- dependency groupIdjavax.servlet.jsp/groupId artifactIdjsp-api/artifactId version2.2/version scopeprovided/scope /dependency /dependencies为什么之前的web项目中没有引入jsp和servlet的jar包 因为之前项目中使用的是tomcat中的jsp和servlet中的jar包在项目中没有引入 我们会用Tomcat插件而不是完整的Tomcat3.3.plugins中定义第三方插件放在build下web项目依赖tomcat运行所以添加 tomcat7插件 --- 在 maven 中刷新就会自动下载Tomcat插件了plugins !-- tomcat插件 -- plugin groupIdorg.apache.tomcat.maven/groupId artifactIdtomcat7-maven-plugin/artifactId version2.1/version configuration port8080/port path//path uriEncodingUTF-8/uriEncoding servertomcat7/server /configuration /plugin /plugins4.编写代码接下来编写Servlet和Jsp代码来通过idea来运行一下servlet代码WebServlet(/demo1) public class MyServlet extends HttpServlet { Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 跳转页面 req.getRequestDispatcher(hello.jsp).forward(req,resp); } }jsp代码% page contentTypetext/html;charsetUTF-8 languagejava % html head titleTitle/title /head body h1大家好感谢支持艺杯羹/h1 /body /html这样就运行成功了但是这要每次都输入命令现在提供一个直接可以运行的配置单击右上角的当前文件 --- Edit Configurations……单击左上角的加号 --- Maven填写项目名和执行的命令tomcat7:run点击OK后配置完成点击Idea的运行符号即可使用maven中的tomcat7插件运行项目5.依赖范围上面的运行后在浏览器访问servlet时发现报500异常这是为什么呢这是由于项目中引入了 Servlet 和 Jsp 的jar包而在项目运行时Tomcat要使用它自带的Servlet和Jsp的jar包这样就造成了jar包冲突但如果项目不引入 Servlet 和 Jsp 的 jar 包则根本无法通过编译。此时可以设置依赖的作用范围解决该问题设置Servlet和Jsp的jar包只在编译期起作用运行时不起作用这样不仅可以通过编译还能在运行时避免jar包冲突。通过在dependency中添加scope可以设置依赖的作用范围有以下取值所以对于Servlet和Jsp依赖我们在pom.xml中添加依赖范围为provided即可因为只需要在编译时生效就可以了注意是放在dependencies标签里的dependency groupIdjavax.servlet.jsp/groupId artifactIdjsp-api/artifactId version2.2/version !-- 作用范围 -- scopeprovided/scope /dependency dependency groupIdjavax.servlet/groupId artifactIdjavax.servlet-api/artifactId version3.0.1/version !-- 作用范围 -- scopeprovided/scope /dependency配置完后就可以访问了6.总结欢迎加入我的知识星球全面提升技术能力。 加入方式“长按”或“扫描”下方二维码噢星球的内容包括项目实战、面试招聘、源码解析、学习路线。文章有帮助的话在看转发吧。 谢谢支持哟 (*^__^*
Maven高级进阶:插件配置、pom 文件与依赖管理
这是一个或许对你有用的社群 一对一交流/面试小册/简历优化/求职解惑欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料《项目实战视频》从书中学往事中“练”《互联网高频面试题》面朝简历学习春暖花开《架构 x 系统设计》摧枯拉朽掌控面试高频场景题《精进 Java 学习指南》系统学习互联网主流技术栈《必读 Java 源码专栏》知其然知其所以然这是一个或许对你有用的开源项目国产Star破10w的开源项目前端包括管理后台、微信小程序后端支持单体、微服务架构RBAC权限、数据权限、SaaS多租户、商城、支付、工作流、大屏报表、ERP、CRM、AI大模型、IoT物联网等功能多模块https://gitee.com/zhijiantianya/ruoyi-vue-pro微服务https://gitee.com/zhijiantianya/yudao-cloud视频教程https://doc.iocoder.cn【国内首批】支持 JDK17/21SpringBoot3、JDK8/11Spring Boot2双版本来源blog.csdn.net/qq_46987323前言1.Maven插件2.构建Maven工程3.pom文件配置4.编写代码5.依赖范围6.总结前言在 Java 生态中Maven 是工程化开发的核心基石。它以标准化流程解决依赖管理与构建繁琐问题让项目从代码到交付的链路清晰可控。本文聚焦 Maven 工程开发核心环节从 Maven 插件配置、工程构建步骤到 pom 文件关键配置逻辑再到代码编写要点与依赖范围规则。掌握这套体系不仅能驾驭工具更能建立工程化思维在团队协作与项目迭代中实现高效开发。基于 Spring Boot MyBatis Plus Vue Element 实现的后台管理系统 用户小程序支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能项目地址https://github.com/YunaiV/ruoyi-vue-pro视频教程https://doc.iocoder.cn/video/1.Maven插件Maven 插件用于扩展 Maven 核心能力setting -- 输入 maven -- 修改安装路径配置文件路径修改本地仓库路径其中的第二个“配置文件路径”要配置到Settings.xml这就配置好Maven插件了但是这个配置好了后只能在当前项目中有用在新的项目中又要重新配置了新建新项目时就会自动配置好maven插件的方法file --- New Projects Setup --- Settings for New Projects...再按照刚刚那个方法配置一遍之后再创建项目时就会沿用这个Maven配置(๑•̀ㅂ•́)و✧maven工程就是可以使用Maven来管理的工程基于 Spring Cloud Alibaba Gateway Nacos RocketMQ Vue Element 实现的后台管理系统 用户小程序支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能项目地址https://github.com/YunaiV/yudao-cloud视频教程https://doc.iocoder.cn/video/2.构建Maven工程接下来我们构建一个Maven的Web工程1.打开 idea选择创建一个新工程2.选择Maven工程并使用maven的web工程模板3.手动添加src/main/java目录此时该目录还不能写Java代码可以看到这个目录和之前讲的目录还有一些没有创建出来那么我们就要手动创建了要给每个文件夹功能4.添加文件如果main下的java文件夹里不能用写java文件那么就右击文件夹在最下方选择“Sources Root”就可以写java文件了test中的文件夹一般是会自动配置为测试文件夹Sources Root源码根存放.java等可编译代码如src/main/javaTest Sources Root测试源码根存放 JUnit 测试类如src/test/javaResources Root资源根存放配置.properties、静态资源如图片Test Resources Root测试资源根存放测试配置文件如src/test/resourcesExcluded排除目录忽略构建输出如target以提升性能3.pom文件配置简单来说他的作用pom.xml 是 Maven 项目的 “说明书”用来写清楚项目要啥依赖、怎么打包让大家按统一规矩干活避免版本混乱和重复操作pom文件最上方是项目基本信息解释标签含义参数定义内容规则 / 说明示例groupId项目组名反向域名格式com.yibeigenartifactId项目名小写字母my-projectversion版本号三段式重大升级。新功能.bug 修复1.2.3packaging打包方式如 jar、war 等jar3.1.properties中定义一些配置信息没有的话就添加进去即可这里的第二个是java版本根据自己的java版本来改我这里是1.8版本的就写1.8 如果你是jdk11那就把1.8改成 11 就OK了properties !-- 编码格式 -- project.build.sourceEncodingUTF-8/project.build.sourceEncoding !-- 编译时使用的JAVA版本 -- maven.compiler.source1.8/maven.compiler.source maven.compiler.target1.8/maven.compiler.target /properties3.2.dependencies中定义依赖的jar包坐标因为javaweb项目所以要用到servlet 和 jsp的jar包因此就要这两个的坐标由于项目是web项目需要写Servlet和JSP所以需要引入Servlet和JSP的依赖。查找依赖坐标的网站https://mvnrepository.com/1. 搜索Servlet --- 单击Java Servlet API2. 里面的版本可以自己选我选的是3.0.1的单击进去复制如图的代码即可往下划一下3. 复制到pom文件的 dependencies 标签中这里先删除最后一个jsp也是一样的操作也可以直接复制我写的这个代码因为都是写死的代码放到pom文件中后还要让 maven 来做加载一般在右侧可以打开maven!-- 依赖的jar包坐标 -- dependencies !-- servlet依赖 -- dependency !-- 项目组名 -- groupIdjavax.servlet/groupId !-- 项目名 -- artifactIdjavax.servlet-api/artifactId version3.0.1/version /dependency !-- jsp依赖 -- dependency groupIdjavax.servlet.jsp/groupId artifactIdjsp-api/artifactId version2.2/version scopeprovided/scope /dependency /dependencies为什么之前的web项目中没有引入jsp和servlet的jar包 因为之前项目中使用的是tomcat中的jsp和servlet中的jar包在项目中没有引入 我们会用Tomcat插件而不是完整的Tomcat3.3.plugins中定义第三方插件放在build下web项目依赖tomcat运行所以添加 tomcat7插件 --- 在 maven 中刷新就会自动下载Tomcat插件了plugins !-- tomcat插件 -- plugin groupIdorg.apache.tomcat.maven/groupId artifactIdtomcat7-maven-plugin/artifactId version2.1/version configuration port8080/port path//path uriEncodingUTF-8/uriEncoding servertomcat7/server /configuration /plugin /plugins4.编写代码接下来编写Servlet和Jsp代码来通过idea来运行一下servlet代码WebServlet(/demo1) public class MyServlet extends HttpServlet { Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 跳转页面 req.getRequestDispatcher(hello.jsp).forward(req,resp); } }jsp代码% page contentTypetext/html;charsetUTF-8 languagejava % html head titleTitle/title /head body h1大家好感谢支持艺杯羹/h1 /body /html这样就运行成功了但是这要每次都输入命令现在提供一个直接可以运行的配置单击右上角的当前文件 --- Edit Configurations……单击左上角的加号 --- Maven填写项目名和执行的命令tomcat7:run点击OK后配置完成点击Idea的运行符号即可使用maven中的tomcat7插件运行项目5.依赖范围上面的运行后在浏览器访问servlet时发现报500异常这是为什么呢这是由于项目中引入了 Servlet 和 Jsp 的jar包而在项目运行时Tomcat要使用它自带的Servlet和Jsp的jar包这样就造成了jar包冲突但如果项目不引入 Servlet 和 Jsp 的 jar 包则根本无法通过编译。此时可以设置依赖的作用范围解决该问题设置Servlet和Jsp的jar包只在编译期起作用运行时不起作用这样不仅可以通过编译还能在运行时避免jar包冲突。通过在dependency中添加scope可以设置依赖的作用范围有以下取值所以对于Servlet和Jsp依赖我们在pom.xml中添加依赖范围为provided即可因为只需要在编译时生效就可以了注意是放在dependencies标签里的dependency groupIdjavax.servlet.jsp/groupId artifactIdjsp-api/artifactId version2.2/version !-- 作用范围 -- scopeprovided/scope /dependency dependency groupIdjavax.servlet/groupId artifactIdjavax.servlet-api/artifactId version3.0.1/version !-- 作用范围 -- scopeprovided/scope /dependency配置完后就可以访问了6.总结欢迎加入我的知识星球全面提升技术能力。 加入方式“长按”或“扫描”下方二维码噢星球的内容包括项目实战、面试招聘、源码解析、学习路线。文章有帮助的话在看转发吧。 谢谢支持哟 (*^__^*