web-dev-qa-db-fra.com

Impossible de trouver les métadonnées en local

Localement sur la machine, j'ai un Artifactory installé avec les référentiels maven, et j'ai un fichier .pom très simple pour mon projet qui le pointe:

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>MYGROUP</groupId>
    <artifactId>NAME</artifactId>
    <packaging>jar</packaging>
    <version>VERSION</version>
    <build>
        <sourceDirectory>SRCFOLDER</sourceDirectory>
        <testSourceDirectory>TESTFOLDER</testSourceDirectory>

        <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>

    </build>

    <repositories>
        <repository>
            <id>local-artifactory</id>
            <name>Artifactory</name>
            <url>http://localhost:8081/artifactory/repo</url>
            <layout>default</layout>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
                <checksumPolicy>warn</checksumPolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
                <checksumPolicy>warn</checksumPolicy>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>local-artifactory-plugins</id>
            <name>Artifactory Plugins</name>
            <url>http://localhost:8081/artifactory/repo</url>
        </pluginRepository>
    </pluginRepositories>

<dependencies>
    <dependency>
        <groupId>MYGROUP</groupId>
        <artifactId>DEPENDENCY1</artifactId>
        <version>bla-SNAPSHOT</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>MYGROUP</groupId>
        <artifactId>DEPENDENCY2</artifactId>
        <version>bla-SNAPSHOT</version>
        <scope>compile</scope>
    </dependency>
</dependencies>
</project>

J'ai donc un dépôt local-artificiel déclaré avec l'intention de tout recharger à chaque fois. J'ai aussi quelques dépendances qui sont des instantanés.

Maintenant, j'utilise maven 3.0.5, et quand je le compile, cela fonctionne bien, mais ce n'est pas du tout un rafraîchissement des instantanés. Jamais. Déjà. Le fichier journal ressemble à ceci:

[DEBUG] Could not find metadata MYGROUP:DEPENDENCY1:bla-SNAPSHOT/maven-metadata.xml in local (/opt/myuser/.m2/repository)
[DEBUG] Using connector WagonRepositoryConnector with priority 0 for http://localhost:8081/artifactory/repo
Downloading: http://localhost:8081/artifactory/repo/MYGROUP/DEPENDENCY1/bla-SNAPSHOT/maven-metadata.xml
Downloaded: http://localhost:8081/artifactory/repo/MYGROUP/DEPENDENCY1/bla-SNAPSHOT/maven-metadata.xml (314 B at 13.9 KB/sec)
[DEBUG] Writing resolution tracking file /opt/myuser/.m2/repository/MYGROUP/DEPENDENCY1/bla-SNAPSHOT/resolver-status.properties
[DEBUG] Could not find metadata MYGROUP:DEPENDENCY1:bla-SNAPSHOT/maven-metadata.xml in local (/opt/myuser/.m2/repository)
[DEBUG] Skipped remote update check for MYGROUP:DEPENDENCY1:bla-SNAPSHOT/maven-metadata.xml, already updated during this session.

Donc, il se plaint constamment de ne pas trouver maven-medatada.xml local et bien sûr, il a tout à fait raison - il n'est pas là. Et ne fait rien avec elle.

J'ai donc essayé d'utiliser la dépendance: purge-local-repository pour purger l'inventaire local et deviner quoi? Apparemment, il ne peut pas le purger car il n'y a pas de maven-metadata.xml dans chaque artefact, quelle fonctionnalité incroyable!

Chaque répertoire d'artefacts .m2, à l'exception de .jar et .pom, contient maven-metadata-local-artifactory.xml (avec la copie correcte de maven-metadata.xml de l'artefactif actuel), _mave.repositories et resolver-status.properties.

Maven est juste sorti de la boîte, il n'y a pas de configuration dans .m2 et la configuration dans le dossier/conf est par défaut sans aucune modification.

MISE À JOUR: Je viens de télécharger manuellement maven-metadata.xml à partir de l'artefactoire et de le placer en tant que maven-metadata.xml dans .m2 pour une dépendance - aucun effet, il le "manque" toujours. Donc je n'ai plus aucune idée de ce qu'il attend de moi. Il ne peut tout simplement pas mettre à jour les dépendances car "déjà mis à jour pendant cette session". Eh bien, je ne sais pas exactement ce qu'il a mis à jour, mais apparemment autre chose.

UPDATE2: Contenu de maven-metadata.xml sur le serveur:

<metadata>
    <groupId>MYGROUP</groupId> 
    <artifactId>DEPENDENCY1</artifactId> 
    <version>bla-SNAPSHOT</version> 
    <versioning>
        <snapshot>
            <buildNumber>1</buildNumber> 
        </snapshot>
        <lastUpdated>20130322155759</lastUpdated> 
    </versioning>
</metadata>
19
Eugene

À partir du fichier xml de métadonnées maven, il semble que vous utilisez un instantané non unique dans votre référentiel. Maven 3 ne prend pas en charge les fichiers pom non uniques, uniquement les instantanés avec TIMESTAMP-BUILDNUMBER au lieu de SNAPSHOT. As-tu:

http://localhost:8081/artifactory/repo/MYGROUP/DEPENDENCY1/bla-SNAPSHOT/DEPENDENCY1-bla-XXXXX-Y.pom

fichier?

5
Fred Simon

Mon maven s'est plaint qu'il ne pouvait pas trouver de métadonnées dans le local, bla bla ... et, fondamentalement, ce qui s'est passé, c'est que j'ai réussi à débrancher mon câble d'alimentation à la mi-maven-build et ses métadonnées dans le sous-répertoire local .m2 correspondant ont été corrompues. Je suis entré, j'ai supprimé les artefacts en question de leur emplacement .m2 et j'ai réessayé la construction. Tout fonctionnait bien. Je voulais juste laisser ce message à ceux qui ont un problème similaire au mien, mais je suis tombé sur votre question.

15
Peter Perháč