2017-03-24 5 views
1

D'abord, installer archétype à mon référentiel local:Maven rapporte 'L'archétype souhaité n'existe pas' lors de l'utilisation archétype de bintray

mvn dependency:get \ 
    -Dartifact=org.teavm.flavour:teavm-flavour-application:0.1.0-dev-8 \ 
    -DremoteRepositories=teavm::::https://dl.bintray.com/konsoletyper/teavm 

En second lieu, je lance la génération d'archétype:

mvn -DarchetypeCatalog=local \ 
    -DarchetypeGroupId=org.teavm.flavour \ 
    -DarchetypeArtifactId=teavm-flavour-application \ 
    -DarchetypeVersion=0.1.0-dev-8 \ 
    archetype:generate 

et obtenez l'erreur suivante:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.0.0:generate 
(default-cli) on project standalone-pom: The desired archetype does not exist 
(org.teavm.flavour:teavm-flavour-application:0.1.0-dev-8) -> [Help 1] 

Lorsque je compile le projet à partir de sources et génère une image SNAPSHOT type, tout fonctionne bien.

Y at-il quelque chose que je fais mal, ou c'est un bug dans Maven? Y at-il un travail autour?

Répondre

1

S'il vous plaît aller à https://bintray.com/konsoletyper/teavm/teavm-flavour-dev

puis appuyez sur Set Me Up!

et choisissez: objets à l'aide de Maven Résolution

copie cette partie dans vos paramètres xml (généralement situé dans /Users/os-username/.m2/settings.xml voir ci-dessous):

<profiles> 
     <profile> 
      <repositories> 
       <repository> 
        <snapshots> 
         <enabled>false</enabled> 
        </snapshots> 
        <id>bintray-konsoletyper-teavm</id> 
        <name>bintray</name> 
        <url>http://dl.bintray.com/konsoletyper/teavm</url> 
       </repository> 
      </repositories> 
      <pluginRepositories> 
       <pluginRepository> 
        <snapshots> 
         <enabled>false</enabled> 
        </snapshots> 
        <id>bintray-konsoletyper-teavm</id> 
        <name>bintray-plugins</name> 
        <url>http://dl.bintray.com/konsoletyper/teavm</url> 
       </pluginRepository> 
      </pluginRepositories> 
      <id>bintray</id> 
     </profile> 
    </profiles> 
    <activeProfiles> 
     <activeProfile>bintray</activeProfile> 
    </activeProfiles> 

Ensuite, essayez à nouveau la deuxième commande.

settings.xml:

Il y a deux endroits où un fichier settings.xml peut vivre:

Maven install: $ {} maven.home /conf/settings.xml

A l'utilisateur installer:. $ {user.home}/m2/settings.xml

https://maven.apache.org/settings.html

+0

Cela fonctionne! Mais quelle est la cause? Lorsque je télécharge des dépendances manuellement, Maven ne voit pas d'archétype dans le référentiel local, même après avoir lancé 'archetype: crawl'. De plus, je dois expliquer à mes utilisateurs comment mettre à jour leur 'settings.xml' à la place en fournissant un seul extrait de ligne de commande. –

+0

Je ne suis pas sûr exactement quel est le problème, mais il semble que mv ne sait pas regarder votre référentiel bintray à moins que vous ne le configuriez dans le settings.xml. J'ai essayé plusieurs arguments de ligne de commande pour la commande archetype: generate, comme changer l'archetypeCatalog, sans succès. Peut-être que l'ajout d'un archetype-catalog.xml à la racine de votre repo et la définition de archetypeCatalog dans votre fichier racine/catalogue de repos vous aideront. Aussi, jetez un oeil ici, il pourrait avoir une bonne connaissance. https://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-catalog.html Bonne chance ... – gba

+0

En ce qui concerne vos utilisateurs, si vous allez lier votre colis à JCenter et utiliser l'auto binaire synchronisation avec maven central, je suppose que vos utilisateurs n'auront rien à changer dans leur settings.xml puisque tous les fichiers seront détectables par les clients maven par défaut. https://bintray.com/docs/usermanual/uploads/uploads_syncingwiththirdpartyplatforms.html – gba