2009-12-16 8 views
4

J'ai des fichiers jar qui ne peuvent pas être trouvés sur le dépôt maven2. Je voudrais ajouter le pot afin que je puisse juste inclure l'étiquette supplémentaire dans mon dossier pom.xml et l'autre développeur peut employer le pot. Quelles sont les étapes nécessaires pour télécharger le fichier jar sur le webfolder http web server? Quel fichier dois-je télécharger à côté de custom.jar? Quels autres fichiers doivent exister sur le webfolder côte à côte avec custom.jar?télécharger le fichier jar vers le dépôt

Répondre

7

Si vous avez déjà un serveur web mis en place pointant sur un dossier Web, une façon simple de déployer votre JAR personnalisé serait d'utiliser le deploy:deploy-file Mojo. Comme indiqué dans la page Usage du Maven Déployer Plugin:

Le deploy:deploy-file Mojo est utilisé principalement pour le déploiement artefacts qui ne sont pas par Maven. L'équipe de développement du projet peut ou peut ne pas fournir un POM pour l'artefact, et dans certains cas vous pouvez déployer l'artefact dans un référentiel distant interne . Le fichier de déploiement fournit une fonctionnalité couvrant tous ces cas d'utilisation, et offre une large gamme de configurabilité pour générer un POM à la volée. De plus, vous pouvez spécifier la disposition utilisée par votre référentiel. La déclaration d'utilisation complète du fichier deploy Mojo peut être décrit comme:

mvn deploy:deploy-file -Durl=file://C:\m2-repo \ 
         -DrepositoryId=some.id \ 
         -Dfile=your-artifact-1.0.jar \ 
         [-DpomFile=your-pom.xml] \ 
         [-DgroupId=org.some.group] \ 
         [-DartifactId=your-artifact] \ 
         [-Dversion=1.0] \ 
         [-Dpackaging=jar] \ 
         [-Dclassifier=test] \ 
         [-DgeneratePom=true] \ 
         [-DgeneratePom.description="My Project Description"] \ 
         [-DrepositoryLayout=legacy] \ 
         [-DuniqueVersion=false] 

Seuls les 3 premiers paramètres sont obligatoires (version courte). Si vous vous demandez ce que le repositoryId est, la documentation du Mojo dit:

Id Server à la carte dans la section <id> sous <server> de settings.xml Dans la plupart des cas, ce paramètre sera nécessaire pour l'authentification. La valeur par défaut est: remote-repository.

En d'autres termes, la façon la plus simple d'utiliser ce serait de copier votre JAR personnalisé sur la machine hébergeant le serveur Web et d'utiliser le protocole file:// en spécifiant l'URL. Il n'y a pas d'installation supplémentaire requise. Si vous voulez déployer à distance, alors scp:// est souvent le protocole préféré (il y en a d'autres mais celui-ci est assez facile à installer). Ci-dessous, un exemple en utilisant scp:

mvn deploy:deploy-file -DgroupId=my.group -DartifactId=myartifact -Dversion=1.0 \ 
    -DgeneratePom=true \ 
    -Dpackaging=jar \ 
    -Dfile=custom.jar \ 
    -DrepositoryId=some.id \ 
    -Durl=scp://REMOTEMACHINE/PATH/TO/WEB_ROOT/maven2_repository 

En fait, en utilisant un serveur Web pour héberger votre propre référentiel Maven est parfaitement bien, mais il peut être un peu douloureux pour initialiser. Une solution pour résoudre ce problème consiste à utiliser un proxy Maven (comme Nexus par exemple) au lieu d'un simple référentiel Maven. Mais cela dépasse votre question.

Pour plus de ressources sur ce point, vérifier (les principes sont toujours valables, même si les solutions de mise en œuvre sont un peu dépassées):

1

De préférence, vous auriez besoin d'un référentiel maven local. Une option pour c'est Nexus

Ou si vous travaillez juste vous-même, vous pouvez enregistrer les frais généraux et mettre les pots dans le référentiel sur votre machine - sous home/.m2/repository, dans un dossier approprié

+0

si i voulez télécharger sur le serveur http, dossier web, quels autres fichiers dois-je inclure dans le même dossier avec custom.jar? peut fournir des étapes? – cometta

+0

bien, je peux google quelques tutoriel sur la question. Mais il est préférable que vous le fassiez. Je vous ai donné un lien qui a beaucoup d'informations. – Bozho

1

commande suivante aide à installer le pot au dépôt local. Après cela, vous pouvez télécharger le dossier avec le jar de local vers le dépôt distant.

mvn install:install-file \ 
    -DgroupId=com.name \ 
    -DartifactId=aaaa-bc \ 
    -Dversion=1.0 \ 
    -Dpackaging=jar \ 
    -Dfile=aaaa-bc.jar \ 
    -DcreateChecksum=true 
+0

Je veux mettre dans le dépôt distant ne pas installer sur le référentiel local – cometta