web-dev-qa-db-fra.com

erreur maven: la dépendance d'élément ne peut pas avoir d'enfants de caractère

Je ne sais pas ce qui s'est passé, mais le POM de mon projet ne fonctionne plus. C'est se plaindre de l'élément de dépendance. Est-ce que la dépendance n'existe plus? Que signifie cette erreur? Pour être clair, je n'ai pas changé le POM, cela ne fonctionne tout simplement pas maintenant.

Le message d'erreur exact est cvc-complex-type.2.3: l'élément 'dépendance' ne peut pas avoir de caractère (enfants), car le type de contenu de ce type est composé uniquement d'élément.

<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>
16
Rob

Comme mentionné dans les commentaires de Powerlord , cette erreur est due à une analyse syntaxique incorrecte du fichier XML, car des caractères étranges et cachés se trouvent entre les balises/some <dependency>...</dependency>. Ces caractères pourraient provenir d'un copier/coller du Web.

Pour résoudre le problème, supprimez tous les espaces et les caractères de nouvelle ligne entre les définitions de balises <dependency>...</dependency> et remettez-les en place avec votre éditeur.

38
ZenLulz

En effet, comme d'autres l'ont dit, il existe des caractères non imprimables mais non conformes à XML insérés dans pom.xml , généralement entre des éléments XML. Dans mon cas, cela se produit souvent lorsque je copie et colle d’ailleurs, généralement de la documentation, un article, un tutoriel, etc. dans mon navigateur.

Pour moi, l'éditeur d'IntelliJ IDEA affiche ces caractères sous forme d'espace rose, peut-être une fonction de mon jeu de couleurs, afin qu'il soit facile de les trouver et de les supprimer.

1
Russ Bateman

J'ai récemment rencontré ce problème et l'erreur montrée dans le fichier xsi: schemaLocation du fichier pom.xml était un problème de copier-coller de sites Web différents introduisant un caractère invisible non espace. Pour vérifier quelle ligne contient le caractère caché, je prends une copie du fichier pom et le colle dans un fichier Word vierge, puis cochez la case "Afficher la marque de paragraphe et autre formatage".

1
Nasco