为什么在 pom.xml 的第1行中出现 Unknown 错误?

在 EclipseIDE 中 pom.xml的第1行获取未知错误。 直到昨天,它一直工作得很好,但是在从 master 更新我的项目之后,在修复合并冲突之后,在 pom.xml 中突然出现了“ Unknown error”。 除了我,我的队友都没有遇到这个问题。我还更改了工作区,删除了缓存,但仍然没有运气。

我在这个项目中使用的是 h2数据库,尽管在 data.sql 中插入了值,但是它没有获取任何值并插入到 h2 DB 表中。在这个问题之前,它工作得很好。我觉得这是由 pom.xml 中的问题造成的,但我不确定。请帮帮我

我删除了现有的项目,并从 master 中获取了最新的代码。之后就被删除了。M2文件夹下的用户,包括存储库文件夹。我做了更新项目,并启用了强制更新的快照/发布,maven 干净和 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>


<groupId>com.abc.roster</groupId>
<artifactId>spring-boot-roster-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring-boot-roster-app</name>
<description>Demo project for Spring Boot Roster</description>


<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.BUILD-SNAPSHOT</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>


<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<!-- <start-class>com.infosys.roster.SpringBootRosterAppApplication</start-class> -->
</properties>


<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!--encryption lib -->
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt</artifactId>
<version>1.9.2</version>
</dependency>


<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt-springsecurity3</artifactId>
<version>1.9.0</version>
</dependency>


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>


<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>


</dependency>




<!--        <dependency> -->
<!--         <groupId>org.hibernate</groupId> -->
<!--         <artifactId>hibernate-core</artifactId> -->
<!--         <version>5.2.10.Final</version> -->
<!--   </dependency> -->


<!-- <dependency> -->
<!-- <groupId>io.springfox</groupId> -->
<!-- <artifactId>springfox-swagger2</artifactId> -->
<!-- <version>2.7.0</version> -->
<!-- <scope>compile</scope> -->
<!-- </dependency> -->




<!-- <dependency> -->
<!-- <groupId>io.springfox</groupId> -->
<!-- <artifactId>springfox-swagger-ui</artifactId> -->
<!-- <version>2.7.0</version> -->
<!-- <scope>compile</scope> -->
<!-- </dependency> -->


<!-- <dependency> -->
<!-- <groupId>io.springfox</groupId> -->
<!-- <artifactId>springfox-data-rest</artifactId> -->
<!-- <version>2.7.0</version> -->
<!-- </dependency> -->
</dependencies>


<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>


<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>


</project>

应用性能

server.port=
spring.h2.console.path=/h2
spring.h2.console.enabled=true


spring.datasource.url=




spring.datasource.username=
spring.datasource.password=
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.platform=h2
spring.datasource.initialization-mode=always


spring.jpa.hibernate.ddl-auto=update
spring.datasource.continue-on-error=true


spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=false


spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect

应该删除 pom.xml 中的未知错误,而且我必须能够在 H2 db 中填充值。

163730 次浏览

虽然我不能复制你的错误(因为你的队友也不能) ,但我有一个建议,可能对你有帮助。

你听说过 字节顺序标记吗?因为它出现在第一行,它是一个可能的候选人为您的麻烦。也许您在某处更改了设置,以某种方式导致了错误。我认为维基百科文章中的这段话特别有意义:

BOM 的使用是可选的。它的存在干扰了软件对 UTF-8的使用,因为软件不希望在文件开始处使用非 ASCII 字节,但是可以处理文本流。

对我来说,我改变了 pom.xml 的父标记,它解决了这个问题 将2.1.5更改为2.1.4,然后执行 Maven-> Update Project

对我来说,我改变了 Pom.xml的父标签,它解决了 change 2.1.5 to 2.1.4然后 Maven-> Update Project。我也是。

Eclipse 和 spring-boot-starter-father 2.1.5有一个 bug

“如果 Maven 的包装属性是战争,那么没有问题。问题在于罐子的类型。”因此,您还可以通过更改包装类型来解决这个问题。

<packaging>war</packaging>

根据现状回答

这个问题得到了解决:

请从 https://download.eclipse.org/m2e-wtp/releases/1.4/安装 mavenarchive ver 插件0.17.3的 m2e 连接器


过时的答案

比起从 Spring Boot 2.1.5.RELEASE降级到 2.1.4.RELEASE,一个不那么深刻的变化是,只要这个 bug 存在,受影响的 Maven JAR 插件就只能从 3.1.2降级到 3.1.1:

<properties>
<!-- ... -->
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>

根据@Shravani 的建议,在 pom.xml 文件中,我将该区域的版本号从以下内容更改为:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

回到这里:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

然后我右键点击了这个项目,做了一个‘ Maven-> Update project...’。这让我解决了问题。

对于我来说同样的问题,来自 Spring starter demo 的原始代码在第1行给出了未知错误:

<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
...

将2.1.6. 释放版本更改为2.1.4. 释放修复了这个问题。

在 eclipseIDE 版本4.10,Springboot 2.2.0上得到这个错误。M4,将 Spring 引导版本更改为2.2.0。M2(在推荐了许多其他解决方案之后,它解决了这个错误)。也许在最新版本的 Spring 启动器项目模块 maven POM 中缺少了什么或者出现了什么故障。

在 pom.xml 文件中,我不得不将版本从2.1.6. RELEASE for Spring-boot-starter-father 构件到2.1.4

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>

改成

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>

然后那个奇怪的 未知错误就消失了

我更新了弹簧工具套装,按 help > check for update

对我来说,将 SpringBoot2项目的 pom.xml 从2.1.6. RELEASE 更改为

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.REL`enter code here`EASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>

到2.1.4。发布验证和工作

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>

你必须 升级 m2e 连接器。 这是一个已知的错误,但有一个解决方案:

  1. 在 Eclipse 中单击“帮助”> “安装新软件...”

  2. 显示一个窗口。在“安装”窗口中:

    在输入框“ Work with”中,输入下一个站点位置,然后按 Enter Https://download.eclipse.org/m2e-wtp/releases/1.4/

    在“名称”输入框中显示大量信息。选择所有项目

    点击“下一步”按钮。

完成安装并重新启动 Eclipse。

将3.1.1添加到下面的属性中,以修复问题

<properties>
<java.version>1.8</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>

只需更新项目 = > 右键单击 = > Maven = > 更新项目

您只需要一个最新的 Eclipse 或 Spring 工具套件4.5及以上版本

我在版本3中遇到了同样的错误。将 STS 升级到最新版本: 4.5.1之后起作用了。不需要更改最新化粪池系统的代码或配置。

以下行动为我工作。

1. 转到工具栏中的“项目”-> 未选中的“自动生成”

在 POM 文件中,将 Spring-boot 版本降级为2.1.4版本。

3. 右键单击项目名称-> 选择 Maven-> 单击“更新项目”。-> OK 等到所有的 maven 依赖项被下载(需要互联网)。

无论何时遇到此类错误,只需更改 发布版本就像 在我的情况下,它显示错误在2.2.7我改为2.2.6

问题:

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.7.RELEASE</version>

解决方案:

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>

在属性标记中添加 < maven-jar-plugin. version > 3.1.1

问题解决

Https://medium.com/@saannjaay/unknown-error-in-pom-xml-66fb2414991b

只需在 pom.xml 中的 properties 标记中添加以下 maven jar 版本, < maven-jar-plugin. version > 3.1.1

然后按照下面的步骤,

步骤1: mvn clean

步骤2: 更新项目

问题解决了! 你也应该试试这个:)

我愚蠢的解决方案是“删除”问题列表中的错误消息。

右键单击 = > 选择删除,您会得到一条警告消息,说它可能会回来。 但是,即使在我进行了清理之后,仍然没有返回错误消息 建造一切。

TLDR :

我从命令行执行以下操作 “ mvn clean” 结果: 没有错误

结果: 在目标文件夹中构建 Jar。 结果: 显示无误差。

所以错误出现在 eclipse 中,而不是 pom.xml 中

我尝试了以下方法:

更新项目 = > 右击 = > Maven = > 更新项目

工程项目 = > 清洁 自动生成将导致相同的错误消息。

我尝试在 pom.xml 中将打包从 jar 更改为 war 重建... 仍然是相同的错误消息。

我尝试了“升级 m2e 连接器”选项。 重建... 仍然是相同的错误消息。

我试着关闭自动重建,清理并退出 Eclipse。 重新启动 Eclipse 和 Build all... 仍然是相同的错误消息。

也许上面的其中一个为我修复了它,只是没有正确地更新或清除 Eclipse 中的问题日志。

如果有人在 VS 代码中有类似的问题,请遵循以下步骤: 打开 pom.xml > > 右击并选择“ Update Project”