Question

Y at-il un client maven qui est MVN pas (le binaire inclus dans la distribution de Maven) je pourrais utiliser pour tirer vers le bas un artefact d'un repository sans utiliser pom? Je voudrais utiliser un repository comme repo pour notre équipe ops pour ramasser construit (y compris des instantanés de builds) mais je ne veux pas de bricoler avec poms d'écriture et dépendances en eux déclarant. Idéalement, je cherche juste un client cli que je pouvais passer une URL repo et les coordonnées et télécharger un artefact donné. Est-ce qu'une telle chose existe ou suis-je mieux d'écrire un script unique pour cela?

Était-ce utile?

La solution

Utilisez Nexus. Il fournit une interface Web que les autres équipes peuvent utiliser pour télécharger des artefacts. http://nexus.sonatype.org/

Autres conseils

Je vois 3 options faciles:

  1. Il suffit de les envoyer un lien pointant sur votre artefact dans votre dépôt et leur demander d'utiliser leur navigateur.
  2. Installer et utiliser wget (wget http://path/to/artifact.extension).
  3. Installer et utiliser mvn dependency:get (nécessite mvn mais ne pas nécessitent une pom.xml, voir cette réponse pour plus de détails).

Utilisez le maven embedded. Plus précisément, utilisez la fonctionnalité à l'intérieur du embedder Maven pour résoudre et le téléchargement des bocaux. Bien que si vous essayez d'écrire un simple CLI, la structure du référentiel est pas complexe et vous pouvez facilement écrire un script qui prend une URL de prise en pension de Maven, ID d'artefact, ID et la version groupe pour générer l'URL complète dans le pot.

Voici comment nous le faisons dans jcabi-aether :

final File repo = this.session.getLocalRepository().getBasedir();
final Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
  new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"),
  JavaScopes.RUNTIME
);

Tout ce que vous devez fournir à cette lib est 1) une liste des dépôts distants, 2) l'emplacement d'un repo local, et 3) les coordonnées Maven de l'artefact. La bibliothèque utilise Apache Aether de Sonatype.

Eh bien, techniquement, le référentiel est accessible via HTTP, ainsi donné l'emplacement du référentiel, artefact et coordonnées, il doit être juste possible de donner à vos opérations font équipe une URL à l'artefact qu'ils peuvent frapper dans un navigateur.

Pensez à URL Pax qui vous permet d'utiliser des URL simples pour faire référence à des artefacts Maven comme ceci:

mvn:groupId/artifactId/version

Voir PAX URL Site Web pour plus d'informations (MVN Protocol Handler).

Toni

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top