首页 > 其他分享 >Maven 项目管理:附录与注释详解

Maven 项目管理:附录与注释详解

时间:2024-12-17 23:43:19浏览次数:4  
标签:maven version %% 项目管理 lastUpdated Maven 仓库 详解

好的,以下是附录部分的完整内容,并附上详细的注释说明:


附一:完整的 pom.xml 配置

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <!-- 项目的基本信息 -->
    <modelVersion>4.0.0</modelVersion> <!-- Maven 模型的版本 -->

    <groupId>com.ithero</groupId> <!-- 项目的组织 ID -->
    <artifactId>maven-usermanager</artifactId> <!-- 项目的唯一标识 -->
    <version>1.0-SNAPSHOT</version> <!-- 项目的版本号 -->
    <packaging>war</packaging> <!-- 项目的打包方式,这里是 war 包 -->

    <!-- 依赖版本统一管理 -->
    <properties>
        <junit.version>4.13</junit.version> <!-- JUnit 版本 -->
        <servlet.version>3.0.1</servlet.version> <!-- Servlet API 版本 -->
        <jsp.version>2.3.3</jsp.version> <!-- JSP API 版本 -->
        <beanutils.version>1.8.3</beanutils.version> <!-- BeanUtils 版本 -->
        <commons.logging.version>1.1.1</commons.logging.version> <!-- Commons Logging 版本 -->
        <jstl.version>1.2</jstl.version> <!-- JSTL 版本 -->
        <log4j.version>1.2.17</log4j.version> <!-- Log4j 版本 -->
        <mabatis.version>3.5.0</mabatis.version> <!-- MyBatis 版本 -->
        <mysql.version>5.1.18</mysql.version> <!-- MySQL 驱动版本 -->
    </properties>

    <!-- 依赖管理 -->
    <dependencies>
        <!-- JUnit 依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version> <!-- 使用 properties 中定义的版本 -->
            <scope>test</scope> <!-- 作用范围:仅测试时需要 -->
        </dependency>

        <!-- Servlet API 依赖 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${servlet.version}</version>
            <scope>provided</scope> <!-- 作用范围:编译和测试时需要,运行时由容器提供 -->
        </dependency>

        <!-- JSP API 依赖 -->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>${jsp.version}</version>
            <scope>provided</scope>
        </dependency>

        <!-- BeanUtils 依赖 -->
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>${beanutils.version}</version>
        </dependency>

        <!-- Commons Logging 依赖 -->
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>${commons.logging.version}</version>
        </dependency>

        <!-- JSTL 依赖 -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>${jstl.version}</version>
        </dependency>

        <!-- Log4j 依赖 -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>

        <!-- MyBatis 依赖 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mabatis.version}</version>
        </dependency>

        <!-- MySQL 驱动依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
            <scope>runtime</scope> <!-- 作用范围:运行时需要,编译时不需要 -->
        </dependency>

        <!-- FastJSON 依赖 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
    </dependencies>

    <!-- 插件管理 -->
    <build>
        <plugins>
            <!-- JDK 编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source> <!-- 源代码编译版本 -->
                    <target>1.8</target> <!-- 目标代码编译版本 -->
                    <encoding>UTF-8</encoding> <!-- 编码格式 -->
                </configuration>
            </plugin>

            <!-- Tomcat 插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <port>80</port> <!-- Tomcat 运行端口 -->
                    <path>/</path> <!-- 项目访问路径 -->
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

附二:清理 Maven 仓库

在 Maven 项目中,如果依赖下载不完整,可能会生成以 lastUpdated 结尾的文件。这些文件会导致 Maven 无法重新下载依赖,需要手动清理。

  • 这是 Windows 批处理脚本(Batch Script),用于在 Windows 操作系统上执行一系列命令。批处理脚本通常以 .bat.cmd 为扩展名,可以直接在命令提示符(Command Prompt)或 PowerShell 中运行。

    set REPOSITORY_PATH=D:\DevTools\Apache\Maven\apache-maven-3.6.0\maven_repository
    rem 正在搜索...
    for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (
        del /s /q %%i
    )
    rem 搜索完毕
    pause
    

    脚本功能解析

    set REPOSITORY_PATH=D:\DevTools\Apache\Maven\apache-maven-3.6.0\maven_repository
    
    • set:设置一个环境变量。
    • REPOSITORY_PATH:变量名,表示 Maven 本地仓库的路径。
    • D:\DevTools\Apache\Maven\apache-maven-3.6.0\maven_repository:变量值,表示 Maven 本地仓库的实际路径。
    rem 正在搜索...
    
    • rem:注释命令,用于在脚本中添加注释,解释代码的功能。
    for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (
        del /s /q %%i
    )
    
    • for /f "delims=" %%i in (...) do (...):循环命令,用于遍历指定目录下的文件。
      • /f:表示处理文件。
      • delims=:表示不分割文件名。
      • %%i:循环变量,表示当前文件的路径。
      • dir /b /s "%REPOSITORY_PATH%\*lastUpdated*":递归查找指定目录下所有以 lastUpdated 结尾的文件。
        • /b:以简洁模式显示文件名(仅文件名)。
        • /s:递归搜索子目录。
        • "%REPOSITORY_PATH%\*lastUpdated*":搜索路径和文件名模式。
      • del /s /q %%i:删除找到的文件。
        • /s:递归删除子目录中的文件。
        • /q:静默模式,不提示确认删除。
    rem 搜索完毕
    
    • rem:注释命令,表示搜索操作已完成。
    pause
    
    • pause:暂停脚本执行,等待用户按任意键继续。通常用于在脚本执行完毕后,防止命令提示符窗口立即关闭。

    脚本功能总结

    这个批处理脚本的主要功能是:

    1. 设置 Maven 本地仓库的路径。
    2. 递归搜索本地仓库中所有以 lastUpdated 结尾的文件。
    3. 删除这些文件。
    4. 暂停脚本执行,等待用户操作。

    适用场景

    在 Maven 项目中,如果依赖下载不完整,可能会生成以 lastUpdated 结尾的文件。这些文件会导致 Maven 无法重新下载依赖,因此需要手动清理。这个脚本可以帮助开发者快速清理 Maven 本地仓库中的残留文件。


附三:更新依赖索引

在 IDEA 中配置完 Maven 仓库后,可能需要手动更新依赖索引,以确保 IDEA 能够正确识别仓库中的 Jar 包。

操作步骤:

  1. 打开 IDEA 设置。
  2. 搜索 Maven -> Repositories
  3. 选择本地仓库,点击 Update

附四:JDK 插件配置

在 Maven 项目中,可以通过配置 JDK 插件来指定编译版本。

配置示例:

<build>
    <plugins>
        <!-- JDK 编译插件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source> <!-- 源代码编译版本 -->
                <target>1.8</target> <!-- 目标代码编译版本 -->
            </configuration>
        </plugin>
    </plugins>
</build>

说明:

  • source:指定源代码的编译版本。
  • target:指定生成的字节码的版本。

附五:配置 IDEA 模板

在 IDEA 中,可以通过配置模板来快速生成代码。

操作步骤:

  1. 打开 IDEA 设置。
  2. 搜索 File and Code Templates
  3. 选择模板类型(如 Class),添加自定义模板。

附六:优先使用本地仓库

在某些情况下,Maven 可能会优先从远程仓库下载依赖,而不是使用本地仓库。可以通过以下配置解决此问题。

配置方法:

在命令行中添加参数:

-DarchetypeCatalog=internal

说明:

  • -DarchetypeCatalog=internal:指定 Maven 优先使用本地仓库中的 archetype 信息。

以上是附录部分的完整内容,并附上了详细的注释说明。希望这些内容能够帮助你更好地理解和使用 Maven!

标签:maven,version,%%,项目管理,lastUpdated,Maven,仓库,详解
From: https://www.cnblogs.com/itcq1024/p/18613663

相关文章

  • BH1750光照强度传感器详解(STM32)
    传感器介绍BH1750是一款数字型光照强度传感器,能够获取周围环境的光照强度。内置16bitAD转换器,其测量范围在0~65535lx(勒克斯,光照强度的单位),不区分环境光源。BH1750可用于调节手机屏幕和键盘的背光功率,或者用于智能灯光控制,比如,随着外界光照强度的变化调节灯光亮度。  以下......
  • 【详解】01背包 | 完全背包(原理+例题)
    一.背包问题背包问题简单来说就是选与不选的问题,其本质就是一种有限制条件的组合问题。给你一个“背包”,这个“背包”的体积是V,给你一堆“物品”,这些“物品”每一个都有价值w和体积v,让你选择一些放入“背包”,得到最大(最小)价值。这里根据放入背包的物品的总体积可以分出三类,一......
  • Maven项目在不同 JDK 版本下的兼容性问题及解决方案
    Maven项目在不同JDK版本下的兼容性问题及解决方案引言在日常开发中,Maven是Java项目构建和管理的核心工具。然而,随着JDK版本的不断更新,开发者可能会遇到一些兼容性问题。例如,某些Maven插件在特定JDK版本下无法正常工作,或者依赖下载失败。本文将通过一个实际案例,分析......
  • 从聚水潭到金蝶云:销售退货数据集成技术详解
    聚水潭销售退货数据集成到金蝶云星辰V2的技术案例分享在企业日常运营中,销售退货数据的高效处理和准确对接至关重要。本文将聚焦于一个具体的系统对接集成案例:如何将聚水潭·奇门平台上的销售退货数据无缝集成到金蝶云星辰V2系统中,以实现业务流程的自动化和优化。本次集成方案命......
  • 详解AQS二:ReentrantLock公平锁原理
    ReentrantLock作为我们使用频率最高的显式锁,它是AQS的经典实现,本篇文章将以ReentrantLock公平锁为例讲解AQS的实现。一、ReentrantLock在之前的文章《线程同步机制一:内部锁和显式锁》中已经提到过关于显式锁ReentrantLock的简单使用privatefinalLocklock=newReentrantLock(......
  • WBS方法与看板工具:电商项目管理利器
    在电商项目管理中,任务繁多、环节复杂,特别是在促销活动、选品企划和大促节点时,如何确保项目高效推进,避免混乱?WBS(工作分解结构)就是解决这些问题的重要方法。通过将项目拆解成更小、更可执行的任务单元,WBS可以帮助团队理清思路、明确分工、监控进度,最终确保项目顺利落地。一、项目......
  • 项目管理的痛点是什么,如何通过软件解决?
    一、项目管理常见痛点(一)进度把控困难进度跟踪不及时在项目执行过程中,团队成员可能没有及时更新任务进度,导致项目经理无法准确了解项目的实际进展。例如,在一个建筑项目中,施工团队可能因为忙于现场工作而忘记向项目经理反馈混凝土浇筑进度,使得项目经理难以及时发现可能出现的延......
  • canal详解及demo
    提示:如何保证Redis中的数据与数据库中的数据一致性?数据同步canal的介绍和demo、大型企业如何实现mysql到redis的同步?使用binlog实时更新redis缓存、canal的接入教程、win下canal的服务器端、canal客户端的创建、连接、测试教程、数据同步方式canal文章目录前言一、can......
  • 不同操作系统中安装Maven的详细步骤
    一、在Windows系统中安装Maven下载Maven访问Maven官方网站(https://maven.apache.org/)。在官网的“Download”部分,找到适合Windows的二进制压缩包(通常是apache-maven-[version]-bin.zip格式),例如,截至2023年7月是apache-maven-3.9.3-bin.zip,点击下载链接将其下载到......
  • 2024年最适合医疗行业的项目管理工具推荐,哪个更实用?
    一、医疗行业项目管理的独特需求与挑战法规与合规要求在医疗行业中,项目管理面临着严格的法规与合规要求这一独特挑战。由于医疗行业关乎人们的生命健康,所以受到全方位且细致的监管,从医疗器械的研发、生产、注册、经营到使用,再到各类医疗服务项目的开展等,都需要遵循众多法规条......