Ошибка maven: зависимость элемента не может иметь детей-символов
Я не уверен, что произошло, но POM для моего проекта больше не работает. Он жалуется на элемент зависимостей. Неужели зависимость больше не существует? Что означает эта ошибка? Чтобы быть ясным, я не изменял POM, он просто не работает.
Точное сообщение об ошибке - cvc-complex-type.2.3: Element 'dependency' не может иметь символ (дочерние элементы), поскольку тип содержимого этого типа является только элементом.
<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.medfusion</groupId>
<artifactId>Estatements-core</artifactId>
<version>14.6.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Estatements-core</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.group.id.Launcher1</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.3.2</version>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>nexus-qhg-dev</id>
<name>Medfusion repo</name>
<url>http://maven.qhg.local/nexus/content/groups/qhg-dev</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.intuit.health</groupId>
<version>14.6.0-SNAPSHOT</version>
<artifactId>notification-reference</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.intuit.health</groupId>
<version>ihg-depot-trunk-SNAPSHOT</version>
<artifactId>attachment-reference</artifactId>
</dependency>
<dependency>
<groupId>com.intuit.health</groupId>
<version>ihg-depot-trunk-SNAPSHOT</version>
<artifactId>eCommunication-core</artifactId>
</dependency>
</dependencies>
</project>
Ответы
Ответ 1
Как упоминалось в комментарии Powerlord, эта ошибка связана с неправильным анализом XML файла, поскольку между a/some есть странные и скрытые символы <dependency>...</dependency>
тег (ы). Эти символы могут поступать из папок с копиями из Интернета.
Чтобы решить проблему, удалите все пробелы и символы новой строки между определениями тегов <dependency>...</dependency>
и верните их в свой редактор.
Ответ 2
Недавно я столкнулся с этой проблемой и ошибкой, показанной в xsi: schemaLocation файла pom.xml, и это была проблема копирования и вставки с разных веб-сайтов, представляющих невидимый непространственный характер. Чтобы проверить, какая строка имеет скрытый символ, я беру копию файла pom и вставляю ее в пустой файл слова и включаю "Показывать маркер абзаца и другое форматирование".
Ответ 3
Это связано с тем, что, как говорили другие, в pom.xml вставляются непечатаемые, но недопустимые символы XML, обычно между элементами XML. В моем случае это часто происходит, когда я копирую и вставляю из другого места, обычно документацию, статью, учебник и т.д. В моем браузере.
Для меня редактор IntelliJ IDEA отображает эти символы в виде розового пространства, возможно, функции моей цветовой схемы, так что их легко найти и удалить.
Ответ 4
Это потому, что вы пытались скопировать, вставить зависимости из Интернета, и есть некоторые специальные или скрытые символы, которые вызывают ошибки этого типа. Поэтому сначала скопируйте в текстовый файл, затем вставьте его в код, чтобы избежать ошибок такого типа.