web-dev-qa-db-fra.com

Erreur lors de l'exécution de la commande Maven archetype generate afin de créer une structure de projet Opndaylight

Quand j'exécute ceci:

 mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller -DarchetypeArtifactId=opendaylight-startup-archetype \
-DarchetypeRepository=http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/ \
-DarchetypeCatalog=http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/archetype-catalog.xml

J'ai eu l'erreur suivante:

[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-archetype-plugin:3.0.1:generate (default-cli) on project standalone-pom: archetypeCatalog 'http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/archetype-catalog.xml' is not supported anymore. Please read the plugin documentation for details. -> [Help 1]

Et help1 ressemble à ceci:

[ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoFailureException

qui n'a pas été mis à jour depuis longtemps.

Tout d’abord, j’ai supprimé la barre oblique inversée et les espaces, bien évidemment, cela n’a pas fonctionné ... Je pensais que c’était peut-être le paramètre de archetypeCatalog, j’ai donc lancé ceci:

mvn archetype:generate -DarchetypeGroupId=org.opendaylight.controller -DarchetypeArtifactId=opendaylight-startup-archetype -DarchetypeCatalog=remote -DarchetypeVersion=1.1.2-Beryllium-SR2

J'ai une erreur comme celle-ci:

[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-archetype-plugin:3.0.1:generate (default-cli) on project standalone-pom: The desired archetype does not exist (org.opendaylight.controller:opendaylight-startup-archetype:1.1.2-Beryllium-SR2) -> [Help 1]

Le tutoriel mentionne qu'OpenDaylight conserve ses propres référentiels en dehors de Maven Central, ce qui signifie que maven ne peut pas résoudre les artefacts OpenDaylight par défaut . J'ai donc utilisé ce tutoriel avec la commande suivante:

cp -n ~/.m2/settings.xml{,.orig} ; \ wget -q -O - https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml > ~/.m2/settings.xml

J'ai même essayé ceci:

cp -n ~/.m2/settings.xml{,.orig} ; \ wget -q -O - https://raw.githubusercontent.com/opendaylight/odlparent/stable/beryllium/settings.xml > ~/.m2/settings.xml

Les fichiers settings.xml ont juste la même apparence ..___ J'ai rencontré des problèmes similaires ces jours-ci. En tant que coéquipier et expert, je ne sais pas du tout comment procéder. Je veux juste générer un arachetype opendaylight pour démarrer un grille-pain.

Merci pour votre aide . Voici mon inforamtion maven:

 ➜  ~ mvn -v
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T03:39:06+08:00)
Maven home: /usr/local/Cellar/maven/3.5.0/libexec
Java version: 1.8.0_131, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.11.6", Arch: "x86_64", family: "mac"
4
Oscar Zhang

Avec maven-archetype-plugin 3.x, il n'est plus possible de spécifier le référentiel en tant qu'argument en ligne de commande (pour des raisons de cohérence et de sécurité).

Donc vous avez 2 options:

3
Robert Scholte

Depuis Maven Archetype Plugin 3.0.0, la résolution de l’archétype a changé. Il n'est plus possible de spécifier le référentiel via la ligne de commande, mais les référentiels tels que déjà spécifiés pour Maven sont utilisés. Cela signifie que les miroirs et les mandataires sont également respectés, ainsi que l’authentification sur les référentiels . Dans votre .m2/setting.xml, ajoutez 

  <settings>
    <mirrors>
      <mirror>
        <id>mrm-maven-plugin</id>
        <name>Mock Repository Manager</name>
        <url>http://www.mycompany.com/maven-reporistory-manager</url>
        <mirrorOf>*,!archetype</mirrorOf>
      </mirror>
    </mirrors>

    <profiles>
      <profile>
      <id>acme</id>
      <repositories>
        <repository>
          <id>archetype</id>
          <url>https://www.acme.com/repo</url>
          <releases>
            <enabled>true</enabled>
            <checksumPolicy>fail</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <checksumPolicy>warn</checksumPolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>acme</activeProfile>
  </activeProfiles>
</settings>
  1. Regardez http://maven.Apache.org/archetype/maven-archetype-plugin/archetype-repository.html
1
begginghard

Ajoutez un référentiel dont l'ID est archétype comme ceci:

  <repository>
    <id>archetype</id>
    <url>https://repository.domain.com/path/to/repo/</url>
  </repository>

Dans mon cas, 

  <repository>
     <id>archetype</id>
     <url>http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
  </repository>

Fondamentalement, j'ai exécuté le paramètre without-DarchetypeRepository, mais je l'ai placé dans le fichier settings.xml comme ci-dessus. Et changez le paramètre -Darchetypecatalog en remote ou simplement le laisser vide. Ça marche .

0
Oscar Zhang

La version récente de Maven ne prend pas en charge la définition de ligne de commande pour archetype. En bref, votre fichier de paramètres par défaut devrait ressembler à ce qui suit (vi ~/.m2/setting.xml),

<?xml version="1.0" encoding="UTF-8"?>
<!-- vi: set et smarttab sw=2 tabstop=2: -->
<!--
 Copyright (c) 2014, 2015 Cisco Systems, Inc. and others.  All rights reserved.

 This program and the accompanying materials are made available under the
 terms of the Eclipse Public License v1.0 which accompanies this distribution,
 and is available at http://www.Eclipse.org/legal/epl-v10.html
-->
<settings xmlns="http://maven.Apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.Apache.org/SETTINGS/1.0.0 http://maven.Apache.org/xsd/settings-1.0.0.xsd">
  <profiles>
    <profile>
      <id>opendaylight-release</id>
      <repositories>
        <repository>
          <id>opendaylight-mirror</id>
          <name>opendaylight-mirror</name>
          <url>https://nexus.opendaylight.org/content/repositories/public/</url>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>opendaylight-mirror</id>
          <name>opendaylight-mirror</name>
          <url>https://nexus.opendaylight.org/content/repositories/public/</url>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>

    <profile>
      <id>opendaylight-snapshots</id>
      <repositories>
        <repository>
          <id>opendaylight-snapshot</id>
          <name>opendaylight-snapshot</name>
          <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
          <releases>
            <enabled>false</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
<repository>
     <id>archetype</id>
     <url>http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
  </repository>

    </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>opendaylight-snapshot</id>
          <name>opendaylight-snapshot</name>
          <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
          <releases>
            <enabled>false</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
  </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>opendaylight-release</activeProfile>
    <activeProfile>opendaylight-snapshots</activeProfile>
  </activeProfiles>
</settings>
0
Learner

Si vous êtes ici parce que vous avez reçu ce message d'erreur lors de la création d'un projet Ninja, téléchargez simplement la dernière version de Maven.

Cette erreur s'est produite dans les versions d'Apache Maven inférieures à 2.5.3.

0
ojonugwa ochalifu