解决 maven 项目无法编译的问题

简介: 解决 maven 项目无法编译的问题

在 idea 中编译时,出现以下错误

代码

  1. Malformed \uxxxx encoding.  

经过各种资料和分析后,是因为依赖的 jar 包有下载不完整导致的。解决办法是,把这些本地 maven 仓库中下载有问题的 jar 包删除,重新打包项目即可(idea 中就是 reload)。

找到并删除这些有问题的 jar 包的方法,我写了一个 java 类来操作(依赖 commons-io 包),具体如下:

package com.tmp;  
import org.apache.commons.io.DirectoryWalker;  
import org.apache.commons.io.FileUtils;  
import java.io.File;  
import java.io.IOException;  
import java.util.ArrayList;  
import java.util.Collection;  
import java.util.Enumeration;  
import java.util.List;  
import java.util.zip.ZipEntry;  
import java.util.zip.ZipFile;  
/**
 * 说明:验证jar完整
 * 作者:FH Admin
 * from:fhadmin.cn
 */
public class FindInvalidJarAndDel extends DirectoryWalker<String> {  
    public static void main(String[] args) throws IOException {  
        // 查找本地maven仓库  
        File startDir = new File("C:\\Users\\beta\\.m2\\repository");  
        FindInvalidJarAndDel finder = new FindInvalidJarAndDel();  
        List<String> finded = new ArrayList<>();  
        finder.walk(startDir, finded);  
        if (finded.size() > 0) {  
            //删除对应的文件  
            for (String f : finded) {  
                System.out.println(f);  
                try {  
                    FileUtils.forceDelete(new File(f));//删除整个文件夹  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  
            }  
        }  
    }  
    protected void handleFile(File file, int depth, Collection<String> results) throws IOException {  
        if (results.contains(file.getParent())) {  
            return;  
        }  
        if (file.getName().endsWith(".lastUpdated")||file.getName().toLowerCase().endsWith("resolver-status.properties")) {  
            results.add(file.getParent());  
            return;  
        }  
        if (file.getName().endsWith(".jar")) {  
            //尝试解压一下,如果不能解压,则说明jar包有问题  
            try {  
                ZipFile zip = new ZipFile(file);  
                Enumeration zipEntries = zip.entries();  
                while (zipEntries.hasMoreElements()) {  
                    ZipEntry entry = (ZipEntry) zipEntries.nextElement();  
                    entry.getName();  
                    entry.getSize();  
                }  
            } catch (Exception e) {  
                results.add(file.getParent());  
                return;  
            }  
        }  
    }  
}

 

目录
相关文章
|
4天前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
3天前
|
Java 应用服务中间件 Maven
Mac使用Idea配置传统SSM项目(非maven项目)
Mac使用Idea配置传统SSM项目(非maven项目)
12 1
|
4天前
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
14 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
4天前
|
Java Maven
成功解决IDEA中建立新项目Maven会默认选择配置(图解详细说明)
这篇文章提供了在IntelliJ IDEA中设置新项目的Maven配置的详细步骤,包括如何通过菜单路径进入设置,选择Maven配置,以及展示设置后的效果,还提供了Maven的安装教程和解决导入项目时jar包下载问题的方案。
成功解决IDEA中建立新项目Maven会默认选择配置(图解详细说明)
|
4天前
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
|
8天前
|
Java Apache Maven
Maven 项目文档
本章介绍如何创建Maven项目文档。例如,在C:/MVN下创建名为`consumerBanking`的项目,可通过命令`mvn archetype:generate`快速搭建。之后需在`pom.xml`中添加或更新插件配置,如`maven-site-plugin`版本至3.3,以避免运行`mvn site`时遇到类未找到错误。这确保文档能成功生成。
|
6天前
|
Java Apache Maven
Maven 项目文档
本章介绍如何创建Maven项目文档。以在C:/MVN下建立的`consumerBanking`项目为例,利用`mvn archetype:generate`命令快速搭建Java项目骨架。为避免运行`mvn site`时出现`NoClassDefFoundError`错误,需在`pom.xml`中升级`maven-site-plugin`至3.3版本,并加入`maven-project-info-reports-plugin`插件以完善站点文档生成配置。
|
2天前
|
Java Apache Maven
Maven 项目文档
本节介绍如何创建Maven项目文档。以在`C:/MVN`下的`consumerBanking`项目为例,使用`mvn archetype:generate`命令快速搭建。需在`pom.xml`中添加`maven-site-plugin`和`maven-project-info-reports-plugin`插件配置以避免运行`mvn site`时出现`NoClassDefFoundError`错误,确保`maven-site-plugin`版本为3.3或以上。
|
4天前
|
前端开发 Java 测试技术
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
|
4天前
|
Java Apache Maven
Maven 项目文档
本章介绍如何创建Maven项目文档。以在C:/MVN目录下的`consumerBanking`项目为例,使用`mvn archetype:generate`命令快速搭建。需配置pom.xml,添加maven-site-plugin和maven-project-info-reports-plugin插件,版本分别为3.3和2.7,以避免运行`mvn site`时出现类找不到的错误。

推荐镜像

更多