idea-maven项目遇到的错误

本文档详细介绍了在IDEA中使用Maven时遇到的各种问题及其解决方案,包括:修改JDK版本,解决程序包找不到错误,处理Maven依赖找不到包的问题,解决`java.lang.IllegalStateException`,处理数据库字段数据溢出问题,修复Maven项目右侧不显示方法以及解决`org.springframework.beans.factory.UnsatisfiedDependencyException`和HTTP 500内部服务器错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修改jdk版本

idea—>File—>Priject Structure—>SDKs

idea的Maven项目运行报程序包找不到的错误

IDEA的Terminal命令行输入mvn idea:idea或者mvn idea:module , 即可解决

IDEA2020版Maven依赖成功导入但任然报错找不到包解决方案

报错原因:
IDEA启动程序按钮和maven的build使用的jar包环境不一样
解决方案:
设置idea构建/运行操作委托给maven就行了。具体设置:
Settings搜索Runner,勾选delegate ide build/run actions to maven

还要注意编码是否设置UTF-8

img

java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell

使用了getStringCellValue()方法来获取值,POI会判断单元格的类型,如果非字符串类型就会抛出上面的异常。

如下图,读取绿色框中的值不抛异常,读取红色框中值出抛出异常,POI认为这是一个数字。

解决

解决方法是在读取某单元格时,使用setCellType()方法先将该单元格的类型设置为STRING,代码如下:

//此处省略N行代码
sheet.getRow(6).getCell(6).setCellType(CellType.STRING);
String cellValue = sheet.getRow(6).getCell(6).getStringCellValue();
//此处省略N行代码

这样就会按字符串类型来读取单元格了。

Data truncation: Data too lang for column ‘salt’ at row 1

该属性输入的长度跟数据库的长度不匹配,数据库长度设置过短!

解决Maven项目右侧maven不显示方法

Ctrl+shift+A --> maven–> add maven projects -->选择对应的pom.xml

org.springframework.beans.factory.UnsatisfiedDependencyException

HTTP状态 500 - 内部服务器错误


类型 异常报告

消息 Servlet[dispatcherServlet]的Servlet.init()引发异常

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'empController': Unsatisfied dependency expressed through field 'jmsTemplate'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.jms.core.JmsTemplate' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

maven报错maven only whitespace content allowed before start tag and not \u0 (position: START_DOCUMENT
解决办法 :

1.找到项目所在 的maven库,然后删除 maven-metadata.xml 这个文件
2.删除整个文件夹
3 重新编译

<think>我们正在解决的是IntelliJ IDEA中使用Maven的properties-maven-plugin插件不生效的问题。根据用户之前的上下文,我们已经知道用户遇到了“Cannot resolve symbol 'read-project-properties'”错误,并且我们给出了一系列解决方案。现在用户的问题更偏向于插件配置正确但执行不生效的情况。 结合引用资料,我们可以从以下几个方面进行排查和解决: 1. **检查插件配置**:确保插件在pom.xml中正确配置,包括版本、目标(goal)和属性文件路径(如果有)。 2. **重新加载Maven项目**:在IDEA中重新导入Maven项目,确保配置被正确加载。 3. **清理缓存**:清理IDEA缓存和Maven本地仓库中可能损坏的插件文件。 4. **检查属性文件路径**:如果插件需要读取外部属性文件,确保路径正确且文件存在。 5. **检查Maven版本**:确保使用的Maven版本与插件兼容。 6. **查看构建日志**:运行Maven命令时添加-X参数(调试模式)查看详细错误信息。 具体步骤: ### 1. 确认插件配置完整 在pom.xml中,确保插件配置了`<execution>`并绑定了到某个生命周期阶段,或者通过命令行调用。例如: ```xml <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <version>1.1.0</version> <executions> <execution> <phase>initialize</phase> <!-- 指定阶段 --> <goals> <goal>read-project-properties</goal> </goals> <configuration> <files> <file>src/main/resources/config.properties</file> </files> </configuration> </execution> </executions> </plugin> ``` 注意:如果没有配置`<execution>`,则需要通过命令行调用:`mvn properties:read-project-properties` ### 2. 重新加载Maven项目 在IntelliJ IDEA中,点击右侧Maven工具栏的刷新按钮(Reimport All Maven Projects),或者右键点击pom.xml文件,选择“Maven”>“Reimport”。 ### 3. 清理缓存 - 清理IDEA缓存:File > Invalidate Caches / Restart... > Invalidate and Restart。 - 清理Maven本地仓库中该插件的缓存(参考引用[4]的方法): - 删除本地仓库中`org/codehaus/mojo/properties-maven-plugin`目录。 -IDEA中,删除pom.xml中该插件的配置(临时删除),然后重新导入Maven项目(此时会重新下载),再撤销删除并再次导入。 ### 4. 检查属性文件路径 如果配置中指定了外部属性文件,确保路径相对于项目根目录(或使用绝对路径),并且文件存在。 ### 5. 检查Maven版本 确保使用的Maven版本与插件兼容。properties-maven-plugin 1.1.0需要Maven 2.0以上。建议使用Maven 3.x。 ### 6. 调试Maven构建 在IDEAMaven工具栏中,选择相应的生命周期阶段(如initialize)并运行,或者使用命令行: ```bash mvn initialize -X ``` 在输出的日志中搜索错误信息。 ### 7. 替代方案:使用Maven的properties标签 如果插件使用复杂,考虑直接使用Maven内置的属性管理: ```xml <properties> <custom.property>value</custom.property> </properties> ``` 或者通过`<filters>`和资源过滤来注入属性(参考引用[2]中提到的资源处理方式)。 ### 8. 检查IDEAMaven配置 参考引用[3],确保IDEA中配置的Maven路径、settings.xml和本地仓库正确,并且覆盖了正确的设置(特别是Local repository的override勾选)。 ### 9. 插件冲突 检查是否有其他Maven插件或配置覆盖了properties-maven-plugin的行为。可以通过`mvn help:effective-pom`查看有效POM。 ### 10. 手动执行插件目标 在IDEAMaven工具窗口中,展开该插件的目标,手动执行`read-project-properties`目标,看是否能够执行成功。 如果以上步骤仍然无法解决问题,可以考虑使用其他方式加载属性,例如使用`maven-resources-plugin`配合资源过滤(参考引用[4]中处理资源的方式)。 最后,如果问题依旧,建议简化配置,创建一个新的Maven项目单独测试该插件,以确定是否为项目环境问题。 相关问题: §§相关问题§§ 1. 如何在Maven中正确使用资源过滤(resource filtering)? 2. 如何解决IntelliJ IDEAMaven插件执行顺序问题? 3. Maven插件执行不生效的通用排查步骤有哪些? 4. 如何为Maven项目配置多环境属性文件?</think>### IntelliJ IDEAMaven 的 `properties-maven-plugin` 插件不生效解决方案 #### 1. **确认插件配置正确性(核心步骤)** ```xml{3-5,8-10} <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <version>1.1.0</version> <!-- 必须指定版本 --> <executions> <execution> <phase>initialize</phase> <!-- 明确绑定生命周期阶段 --> <goals> <goal>read-project-properties</goal> </goals> <configuration> <files> <file>config/env.properties</file> <!-- 属性文件路径 --> </files> </configuration> </execution> </executions> </plugin> ``` - ✅ **关键检查点**: - 文件路径必须相对于**项目根目录**(如 `src/main/resources/config.properties`) - 确保 `<phase>` 指定了生命周期阶段(如 `initialize` 或 `generate-resources`) - 配置文件必须存在且路径正确(IDEA 中右键文件 → **Copy Path/Reference** 验证) #### 2. **清理缓存并强制刷新** - **操作流程**: 1. 删除本地 Maven 仓库中的插件缓存: ```bash rm -rf ~/.m2/repository/org/codehaus/mojo/properties-maven-plugin ``` 2.IDEA 中执行: - **Maven 面板** → 点击刷新按钮 🔄(Reimport All Maven Projects) - 右键项目 → **Maven** → **Reimport** 3. 清理 IDEA 缓存: **File → Invalidate Caches → Invalidate and Restart** #### 3. **验证插件执行(调试模式)** ```bash mvn initialize -X # 启用调试模式查看插件执行 ``` 检查输出日志中是否包含: ``` [DEBUG] Configuring mojo: properties-maven-plugin:1.1.0:read-project-properties [INFO] Reading property file: /project-path/config/env.properties ``` #### 4. **路径问题解决方案** - **相对路径修正**(适用于子模块项目): ```xml <file>${project.basedir}/../global.properties</file> ``` - **IDEA 工作目录配置**: 1. **Run → Edit Configurations** 2. 选择 Maven 配置 → **Working directory** → 设置为 `$MODULE_WORKING_DIR$` #### 5. **插件冲突排查** 检查是否有其他插件覆盖了属性加载: ```bash mvn help:effective-pom > effective-pom.xml ``` 在生成的 `effective-pom.xml` 中搜索 `properties-maven-plugin`,确认配置是否被覆盖。 #### 6. **替代方案:使用 Maven 原生属性加载** ```xml <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <!-- 启用属性过滤 --> </resource> </resources> </build> <properties> <custom.property>defaultValue</custom.property> </properties> ``` 在资源文件中使用 `${custom.property}` 即可注入值[^2]。 ### 验证成功的标志 1.Maven 生命周期执行时,属性值被正确加载 2. 在代码中可通过 `System.getProperty("key")` 获取值 3. 构建日志显示 `Reading property file...` ### 预防措施 1. **IDEA 配置优化**: - **Settings → Build Tools → Maven** → 勾选 **Always update snapshots** - 配置正确的 Maven home 和 settings.xml(参考引用[3]) 2. **锁定插件版本**: ```xml <properties> <properties-maven-plugin.version>1.1.0</properties-maven-plugin.version> </properties> ``` 3. **定期更新索引**: - **Maven 面板** → 右键仓库 → **Update** > 通过以上步骤,95% 的属性插件不生效问题可解决[^1][^4]。如仍失败,考虑使用 Spring Boot 的 `@ConfigurationProperties` 或 Apache Commons Configuration 替代方案。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值