Spring 4.2.4.RELEASE MVC 学习笔记 - 2 - Maven(咋个办呢 zgbn)

本文将指导您如何使用 Maven 创建 Spring 4.2.4.RELEASE MVC 的多子项目,包括创建 Maven 工程、配置属性以及创建 Maven 子项目等关键步骤。

Spring 4.2.4.RELEASE MVC 学习笔记


创建Maven工程

    现在开始进入创建项目工程,这里使用Maven工具创建项目,顺便学习一下多子项目Maven工程吧。

创建Maven Project

    打开Eclipse,依次选择[File->New->Project(Maven Project)],打开“New Project”页面,然后找到[Maven->Maven Project]选项,点击[Next]进入“New Maven Project”页面。

这里写图片描述
这里写图片描述

    在“New Maven Project”页面,选择默认的工作空间,也就是存放Maven工程代码的文件夹,然后点击[Next]。
    我们是要创建一个Maven的总项目,所以这里只需要创建一个最简单的目录就好了,所以选择“maven-archetype-size-simple”模型就可以了,然后点击[Next]。
    填写一些Maven信息,然后点击[Finish]等待项目创建完成。
项目描述
Group Id是Maven中的组概念的组ID(遵循java中包命名规则随意填写就好)
Artfact Id是Maven中构造ID(遵循java中包命名规则随意填写就好)
Vsersion可以理解为该项目的版本号
Package项目存放代码包名称

这里写图片描述
这里写图片描述

    此时在Eclipse工作区中,左侧的Package Explorer区域下(我个人喜欢看这个视图),就能看到刚刚创建的Maven Project,一次展开该项目,除了pom.xml文件外,其他的文件和文件夹都可以删除,这里用不到。

PS:我个人创建的Maven Project名字叫做“_total”。
这里写图片描述

创建Maven子项目

    下面我们开始创建Maven子项目,这里开始进入Spring 4.2.4版本的学习了。
    在Eclpse工作空间,在“Package Explorer”中鼠标选中Maven Project的总项目“_total”,然后点击鼠标右键依次选择[New->Other]进入新建页面,然后找到[Maven->Maven Module]点击[Next]进入Maven子项目创建页面。

这里写图片描述
这里写图片描述

    这里需要注意一下,这个子项目是用来部署Spring mvc用的,所以Maven模型选择一个“maven-archetype-size-webapp”创建一个java web工程,然后点击[Next],Package这个项需要注意一下,确认是不是我们想要包名,如果不是可以自己直接修改即可。直接点击[Finish]完成Maven子项目创建。

这里写图片描述
这里写图片描述

    这个时候,我们回到“Package Explorer”视图下看一下我们的创建Maven项目结构。

这里写图片描述

配置调整子项目

    子项目framework_spring创建完成后,需要对它进行一些项目属性配置。
    鼠标选择该项目,点击鼠标右键选择[Properties]进入项目属性配置页面。

这里写图片描述

    在“Properties”页面左侧菜单中依次找到[Project facets]点击,右侧打开配置页面,勾选“Dynamic Web Modele”和“java”、“javaScript”选项。
    注意:对应的version的选择,请根据自己项目的实际情况选择。

这里写图片描述

    在“Properties”页面左侧菜单中依次找到[Java Build Path]点击,右侧打开配置页面,在“Java Build Path”页面选择“Source”选项卡,参考源文件夹的提示,自己在项目对应路径下创建对应的文件夹。也可以修改编译默认的目录。
    注意:源文件在项目中对应的创建完成之后,为了不出现不必要的错误,在重新回到该配置页面,通过[Remove]和[Add Folder]两个动作按钮,重新指定一下元文件夹。
    PS:编译默认输出路径,这里我修改了,因为我比较懒。

这里写图片描述

<think>好的,我现在要解决用户提出的问题:在IntelliJ IDEA中无法解析org.springframework:spring-expression:4.2.4.RELEASE,出现Maven依赖错误。首先,我需要回顾用户提供的引用内容,看看是否有相关的线索。 用户引用了四个不同的情况,其中引用[1]提到了直接引入不同版本的Spring依赖,比如spring-core的4.2.8,而spring-context用了5.0.2,可能存在版本不一致的问题。引用[2]指出当使用${spring.version}变量时,如果没有正确声明版本号,会导致依赖无法解析,解决方法是统一版本或添加版本配置。引用[3]提到Spring Cloud版本错误,强调版本统一的重要性。引用[4]则指出权限问题可能导致依赖下载失败。 用户的问题是关于spring-expression的4.2.4.RELEASE无法解析。首先,我应该考虑版本冲突的可能性。检查用户是否在项目中混合使用了不同版本的Spring组件,比如spring-beansspring-context的版本是否与spring-expression一致。例如,在引用[1]中,用户引入了不同版本的依赖,可能导致冲突。 接下来,用户可能在pom.xml中使用了变量来定义版本号,但没有正确声明,如引用[2]所述。需要检查pom.xml中是否有<properties>部分定义了spring.version或者其他相关属性,并确保其正确性。 另外,可能的问题包括Maven仓库中没有该特定版本的依赖,或者网络问题导致无法下载。需要确认4.2.4.RELEASE是否存在于Maven中央仓库,或者用户是否配置了正确的仓库镜像。同时,检查是否有权限问题,如引用[4]提到的AccessDeniedException,但这种情况通常会有不同的错误提示。 此外,IDEA的缓存可能导致依赖解析问题,需要建议用户清理缓存并重新导入项目。还有可能是Maven配置问题,比如settings.xml中的代理或镜像设置不正确。 最后,用户可能需要更新依赖版本,因为4.2.4.RELEASE较旧,可能存在兼容性问题或已被移除。如果必须使用该版本,需要确保所有相关组件的版本一致,如引用[1]和[2]中提到的版本统一建议。 总结解决步骤:检查版本一致性,确认pom.xml中的属性配置,清理IDEA缓存,检查仓库配置,手动安装依赖或更新版本。</think>### 在IDEA中解决`Cannot resolve org.springframework:spring-expression:4.2.4.RELEASE`的完整方案 --- #### 一、核心问题定位 1. **版本不一致** 根据引用[1][^1],若项目中存在**混合版本**的Spring依赖(如`spring-core:4.2.8`和`spring-context:5.0.2`),会导致依赖树冲突。 ```xml <!-- 错误示例:混合版本导致依赖冲突 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.2.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>4.2.4.RELEASE</version> <!-- 低版本 --> </dependency> ``` 2. **版本变量未声明** 参考引用[2][^2],若使用`${spring.version}`但未在`<properties>`中定义,Maven无法解析: ```xml <!-- 错误示例:未声明版本变量 --> <properties> <!-- 缺少 spring.version 声明 --> </properties> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${spring.version}</version> <!-- 报错 --> </dependency> ``` 3. **仓库镜像/网络问题** - Maven中央仓库可能未托管旧版本(如4.2.4.RELEASE- 本地仓库缓存损坏(引用[4][^4]权限问题可能导致下载失败) --- #### 二、分步解决方案 **方案1:统一Spring版本(推荐)** ```xml <!-- 正确配置:在<properties>中统一定义版本 --> <properties> <spring.version>4.2.8.RELEASE</spring.version> <!--spring-core版本对齐 --> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${spring.version}</version> </dependency> <!-- 其他Spring组件需同步版本 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> </dependencies> ``` **方案2:强制指定仓库源** 1. 在`pom.xml`中添加阿里云镜像: ```xml <repositories> <repository> <id>aliyun</id> <url>https://maven.aliyun.com/repository/public</url> <releases> <enabled>true</enabled> </releases> </repository> </repositories> ``` **方案3:手动清理与刷新** 1. **清理IDEA缓存**: - 点击菜单栏 `File > Invalidate Caches... > Invalidate and Restart` 2. **删除本地Maven仓库中的残留文件**: ```bash # 定位到本地仓库路径 cd ~/.m2/repository/org/springframework/spring-expression rm -rf 4.2.4.RELEASE ``` 3. **重新导入Maven项目**: - 右键点击项目根目录 > `Maven > Reload Project` --- #### 三、特殊场景处理 **场景:必须使用4.2.4.RELEASE** 1. 检查依赖是否真实存在: - 访问[Maven Central仓库](https://repo1.maven.org/maven2/org/springframework/spring-expression/4.2.4.RELEASE/),确认文件列表是否完整 2. 手动安装到本地仓库(若镜像源缺失): ```bash mvn install:install-file -DgroupId=org.springframework \ -DartifactId=spring-expression \ -Dversion=4.2.4.RELEASE \ -Dpackaging=jar \ -Dfile=/path/to/spring-expression-4.2.4.RELEASE.jar ``` --- #### 四、验证配置 1. 在IDEA中打开`Maven工具窗口`: - 检查依赖树是否有冲突:`mvn dependency:tree` - 确认`spring-expression`版本是否统一 ```bash [INFO] org.springframework:spring-expression:jar:4.2.8.RELEASE:compile [INFO] org.springframework:spring-context:jar:4.2.8.RELEASE:compile ``` --- ### 相关问题 1. 如何排查Maven依赖冲突导致的`NoSuchMethodError`? 2. 为什么IDEA有时无法正确解析已存在的本地依赖? 3. 如何为多模块项目统一管理Spring依赖版本? 4. 使用旧版Spring框架时需要注意哪些兼容性问题? [^1]: Spring框架不同组件的版本需严格对齐,否则可能引发类加载冲突或方法缺失异常。 [^2]: Maven属性变量必须先在`<properties>`中声明,否则会导致占位符无法解析。 [^3]: 中央仓库可能移除老旧版本,建议使用LTS版本或企业私有仓库托管特定版本。 [^4]: 权限问题需检查Maven本地仓库目录的读写权限(Windows需以管理员身份运行IDEA)。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值