使用maven进行项目管理,使项目开发更加方便、快捷,只需要配置相应的依赖和规则,就可以使用公共仓库中的资源!任何事物都是双面性的,需要使用其优异的功能,就必须遵守相应的规则,只有掌握其规范,凌驾其上才能行云流水般的为你所用!
最近接触了很多maven项目,在将工程从SVN上check下来,调试运行过程中遇到了各种各样的错误.比如:maven compile 失败,在很多情况下是插件的原因导致的,加入本文最下方的插件配置信息,大部分相关问题可以得到解决。
今天我自己在pom.xml中做了参数配置化,在配置之前,项目正常执行,但是在参数配置化成功后,出现了另外的错误,异常信息如下:
Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from relative location [koubei-article.application.xml]
Offending resource: class path resource [applicationContext.xml]; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:conf/koubei-article.cache.datasource.xml]
Offending resource: class path resource [koubei-article.application.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [conf/koubei-article.cache.datasource.xml]; nested exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 3 of 3-byte UTF-8 sequence.
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:201)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:147)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:132)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:507)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:398)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:80)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.koubei.article.fullbuild.FullBuildArticle.main(FullBuildArticle.java:19)
Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:conf/koubei-article.cache.datasource.xml]
Offending resource: class path resource [koubei-article.application.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [conf/koubei-article.cache.datasource.xml]; nested exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 3 of 3-byte UTF-8 sequence.
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:182)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:147)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:132)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:92)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:507)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:398)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:190)
... 19 more
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [conf/koubei-article.cache.datasource.xml]; nested exception is com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 3 of 3-byte UTF-8 sequence.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:416)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:174)
... 27 more
Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 3 of 3-byte UTF-8 sequence.
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:674)
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:425)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1742)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(XMLEntityScanner.java:1242)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanComment(XMLScanner.java:756)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanComment(XMLDocumentFragmentScannerImpl.java:1036)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2945)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:225)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)
... 32 more
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 3 of 3-byte UTF-8 sequence.
读取XML配置文件出错。搞了很久才将问题解决,是由于pom.xml中缺少插件的配置信息,编码格式需要指明为UTF-8.我将一个比较完整的plugins加入到配置中后,问题解决。插件的配置内容如下:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warSourceExcludes>${warExcludes}</warSourceExcludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.3</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
分享到:
相关推荐
在apache-maven-3.5.2/conf/setting.xml中加入以下配置即可解决 alimaven aliyun maven http://maven.aliyun.com/nexus/content/repositories/central/ central junit junit Address/ ...
idea创建Maven项目时,报错显示Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.0.2:resources,并且Maven插件内看不到 mybatis-generator。如下图: 折腾了好久发现配置放错地方了,...
Maven是Java开发中不可或缺的构建工具,它通过项目对象模型(Project Object Model, POM)和插件来管理项目的构建、报告和依赖关系。Maven 3.5.3是其特定的一个版本,提供了许多改进和新特性。 ** Maven的核心概念*...
SpringBoot项目使用maven配置文件是Java后端开发中的常见实践,它可以帮助开发者高效地管理依赖、构建项目以及执行自动化任务。Maven是Apache软件基金会的一个项目,它提供了一个项目对象模型(Project Object Model...
maven打包,指定入口类的jar包,具体的pom配置为: <groupId>org.apache.maven.plugins <artifactId>maven-shade-plugin <version>3.1.0 <phase>package <goal>shade implementation="org....
3. **依赖管理(Dependency Management)**: Maven通过POM文件管理项目的依赖关系,自动下载所需的库文件,避免了类路径冲突问题。只需在POM文件中声明依赖,Maven会自动处理。 4. **仓库(Repository)**: Maven...
三、Maven配置 1. POM.xml配置: Maven的配置主要通过修改pom.xml文件实现。例如,添加依赖库: ```xml <groupId>com.example</groupId> <artifactId>library <version>1.0.0 ``` 或者配置构建插件:...
2. **依赖管理**:Maven 自动管理项目依赖,从远程或本地仓库下载所需的库,并解决依赖冲突。开发者只需在POM文件中声明项目所依赖的库,Maven会自动处理这些库的下载和路径设置。 3. **生命周期(Lifecycle)**:...
Maven 的核心是约定优于配置的思想,这使得开发人员能够快速上手并高效地管理项目。 #### 二、Maven配置文件settings.xml的作用 在Maven项目中,`settings.xml` 文件是Maven的核心配置文件之一,用于定义Maven的...
Maven是一个强大的项目管理工具,它主要用于Java项目的构建、依赖管理和项目信息管理。Maven的核心理念是通过一个标准化的项目对象模型(Project Object Model,POM),自动处理项目的构建过程,极大地简化了开发...
本文将详细介绍如何在Eclipse中安装和配置该插件,以及如何通过它来管理Maven项目。 #### 二、离线安装Eclipse Maven Plugin 对于没有网络连接或者希望离线安装插件的情况,可以通过以下步骤进行: ##### 步骤1:...
通过使用Maven,你可以简化项目的构建过程,统一构建流程,并自动管理项目的依赖关系。以下是一份详细的Maven项目构建步骤: ### **一、安装与配置Maven** 1. **下载Maven**: 首先,你需要从Apache Maven官网...
标题"Maven配置"涉及到的核心内容包括Maven的安装与环境配置、POM.xml文件的理解与编写、本地仓库的设置以及Maven的全局配置等。 1. Maven的安装与环境配置: Maven的安装通常涉及下载最新版本的Maven,解压到指定...
使用 tomcat8-maven-plugin 插件可以简化项目的部署过程,无需手动配置 Tomcat 服务器。该插件可以自动将项目部署到 Tomcat 服务器上,并且可以自动配置 Tomcat 服务器的 settings。 结论 tomcat8-maven-plugin ...
Maven是一个项目管理和综合工具,它通过一系列预定义的任务和明确的构建生命周期来管理项目的构建、报告和文档。Maven的核心特性之一是其生命周期(Lifecycle),它定义了一系列必须按顺序执行的构建阶段(Phase)。...
首先,Maven是一个广泛使用的Java项目管理工具,它提供了一种标准化的方式来管理和构建Java项目。Maven通过依赖管理和项目信息管理,使得开发者能够轻松地解决项目的构建问题。它通过读取项目对象模型(Project ...
- Maven通过POM中的`<dependencies>`标签管理项目依赖。它会自动下载并管理这些依赖及其传递性依赖。 - 使用`mvn dependency:tree`命令可以查看项目的依赖树,便于理解和管理依赖关系。 6. **Maven插件** - ...
其设计初衷是通过一个中央信息片段(即POM文件)来统一管理项目的构建、报告以及文档等多个方面。 - **项目对象模型(POM)**: Maven的核心概念之一,它是一种描述项目信息和配置的XML文件。POM文件包含了项目的...
通过本示例,你可以学习如何利用Maven简化Java项目的构建过程,理解其依赖管理机制,并掌握配置和管理Maven项目的基本技巧。同时,了解Maven如何与开发流程中的其他工具协同工作,提升整体的开发效率和项目质量。