Eclipse 使用Maven 构建Web项目的最佳方式,我认为没有之一(3)

简介: Eclipse 使用Maven 构建Web项目的最佳方式,我认为没有之一

关键要看pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.cmower</groupId>
    <artifactId>Maven4Web</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>Maven4Web Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <developers>
        <developer>
            <id>cmower</id>
            <name>maweiqing</name>
        </developer>
    </developers>
    <properties>
        <javax.servlet.version>3.1.0</javax.servlet.version>
        <spring.version>3.2.8.RELEASE</spring.version>
        <spring.security.version>3.2.3.RELEASE</spring.security.version>
        <jstl.version>1.2</jstl.version>
        <mysql.connector.version>5.1.30</mysql.connector.version>
        <jdk.version>1.7</jdk.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${javax.servlet.version}</version>
            <scope>provider</scope>
        </dependency>
        <!-- Spring 3 dependencies -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- jstl for jsp page -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>${jstl.version}</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/log4j/log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>Maven4Web</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>
    </build>
</project>


运行项目:

image.png



pom的英文全称应该是Project Object Model(项目对象模型)。pom.xml,一个将项目编译、测试、部署等步骤联系在一起加以自动化的XML,通常放置在项目的根目录下。它是Maven 项目的灵魂文件,它的作用主要是用来配置项目、开发者的信息,管理项目的依赖包、编译环境等。


pom.xml文件的第一部分通常是:


<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
</project>


其中的modelVersion是4.0.0,这是当前仅有的,可以被Maven2&3同时支持的POM版本,它是必须的。


pom.xml文件的第二部分通常是:


<groupId>com.cmower</groupId>
<artifactId>Maven4Web</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Maven4Web Maven Webapp</name>
<url>http://maven.apache.org</url>
<developers>
    <developer>
        <id>cmower</id>
        <name>maweiqing</name>
    </developer>
</developers>


groupId : 组织标识,本书的所有源码均为com.cmower。

artifactId : 项目名称,本例子为Maven4Web。

packaging : 打包的格式,Java Web项目为war包。

version : 版本号,通常以0.0.1为起始版本号。

name:项目的名称, Maven产生的文档用

url:项目主页的URL, Maven产生的文档用

developers:项目的开发者,可以有多个。

pom.xml文件的第三部分通常是:


<properties>

   <spring.version>3.2.8.RELEASE</spring.version>

   <jdk.version>1.7</jdk.version>

</properties>


用来定义一些可能需要变动又经常使用的版本号变量,比如说Spring的版本号定义为3.2.8.RELEASE。


pom.xml文件的第四部分通常是:


<dependencies>

   <!-- Spring 3 dependencies -->

   <dependency>

       <groupId>org.springframework</groupId>

       <artifactId>spring-core</artifactId>

       <version>${spring.version}</version>

       <exclusions>

           <exclusion>

               <groupId>commons-logging</groupId>

               <artifactId>commons-logging</artifactId>

           </exclusion>

       </exclusions>

   </dependency>

</dependencies>


元素描述了项目相关的所有依赖, 这些依赖组成了项目构建过程中的一个个环节。每次更改pom.xml文件保存后,新增或者改动的依赖将会自动从Maven 定义的仓库中(比如阿里云镜像库)下载到本地仓库。


有了Maven的帮助,新增项目依赖的JAR包实在是太方便了。比如说我们使用Fastjson

来进行JSON解析和生成,那么要添加Fastjson的JAR包到项目的构建路径中,该怎么做呢?


第一步,进入MavenRepository网站(地址为 http://mvnrepository.com),在 search 文本域中输入com.alibaba(groupId)或者 fastjson(artifactId),然后点击「search」按钮,结果如下:




第二步,点击Fastjson的链接进入到Fastjson的主页,可以看到所有版本的Fastjson,选择一个使用率最高的,目前是1.2.41版本。使用率高在一定程度上表明这个版本的JAR包最稳定,它已经得到了广大程序员的认可。


第三步,在1.2.41版本的Fastjson页,只需要左键轻轻地在 「Maven」选项卡内点一下,就已经把Fastjson的依赖信息复制到粘贴板了,不再需要「Ctrl+C」哦——非常的人性化。


第四步,将Fastjson的依赖信息粘贴到pom.xml文件的<dependencies>节点下,然后按下快捷键「Ctrl+S」保存。紧接着,依次展开Maven4Web → Java Resources → Libraries → Maven Dependencies 节点,你可以看到 fastjson-1.2.41.jar 已经悄悄地添加进来了。


另外,元素主要用于解决版本冲突问题。上例中在计算spring-core的依赖传递时, 排除commons-logging的依赖构件集。


pom.xml文件的第五部分通常是:


<build>
    <finalName>Maven4Web</finalName>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>${jdk.version}</source>
                <target>${jdk.version}</target>
            </configuration>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
    </resources>
</build>


元素用于构建项目需要的信息。

元素用于指定该项目使用的插件列表。比如本例中指定了编译源代码的“maven-compiler-plugin”插件。

元素描述了项目相关的所有资源路径列表。比如本例中指定的xml文件,这些资源被包含在最终的打包文件里。


相关文章
|
11月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
863 1
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
1194 64
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
1095 0
|
人工智能 安全 程序员
用 Colab 和 ngrok 免费部署你的 Web UI 项目,随时随地访问!
用 Colab 和 ngrok 免费部署你的 Web UI 项目,随时随地访问!
1728 12
|
10月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
689 4
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。
|
前端开发 JavaScript Shell
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
本文为鸿蒙开发者整理了Web性能优化的实战案例解析,结合官方文档深度扩展。内容涵盖点击响应时延核心指标(≤100ms)、性能分析工具链(如DevTools时间线、ArkUI Trace抓取)以及高频优化场景,包括递归函数优化、网络请求阻塞解决方案和setTimeout滥用问题等。同时提供进阶技巧,如首帧加速、透明动画陷阱规避及Web组件初始化加速,并通过优化前后Trace对比展示成果。最后总结了快速定位问题的方法与开发建议,助力开发者提升Web应用性能。
|
JSON 开发框架 自然语言处理
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)
本文主要介绍了应用开发中的三大核心内容:生命周期管理、资源限定与访问以及多语言支持。在生命周期部分,详细说明了应用和页面的生命周期函数及其触发时机,帮助开发者更好地掌控应用状态变化。资源限定与访问章节,则聚焦于资源限定词的定义、命名规则及匹配逻辑,并阐述了如何通过 `$r` 引用 JS 模块内的资源。最后,多语言支持部分讲解了如何通过 JSON 文件定义多语言资源,使用 `$t` 和 `$tc` 方法实现简单格式化与单复数格式化,为全球化应用提供便利。
428 104
|
JavaScript 前端开发 API
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(二)
本文介绍了HarmonyOS应用开发中的HML、CSS和JS语法。HML作为标记语言,支持数据绑定、事件处理、列表渲染等功能;CSS用于样式定义,涵盖尺寸单位、样式导入、选择器及伪类等特性;JS实现业务逻辑,包括ES6语法支持、对象属性、数据方法及事件处理。通过具体代码示例,详细解析了页面构建与交互的实现方式,为开发者提供全面的技术指导。
647 104

推荐镜像

更多