2016-03-07 4 views
1

J'ai des problèmes pour accéder au numéro de révision svn via Maven. La seule aide réelle que je l'ai reçu de la page d'utilisation du SCM est la suivante:Maven scm et svn

<scm> 
    <connection>scm:svn:http://somerepository.com/svn_repo/trunk</connection> 
    <developerConnection>scm:svn:https://somerepository.com/svn_repo/trunk</developerConnection> 
    <tag>HEAD</tag> 
    <url>http://somerepository.com/view.cvs</url> 
</scm> 

Cela ne veut rien dire pour moi que je ne peux pas comprendre ce lien, DeveloperConnection et url moyenne. J'ai simplement branché l'url à mon repo pour tous les 3 éléments. Je ne sais pas non plus pourquoi Maven ne me demande pas le nom d'utilisateur et le mot de passe du référentiel.

Je suis très nouveau à Maven et peut-être poser une question très simple, mais j'apprécierais une explication complète quant à la façon dont je dois accéder au svn repo.

+0

Est-ce que cela répond à votre question? http://stackoverflow.com/a/35676704/1743880 – Tunaki

+0

Salut @Tunaki c'est agréable de vous voir ici répondre à mes questions à nouveau! Je crains que cela ne réponde pas à ma question cependant :(, je n'ai vraiment besoin que de me connecter à mon dépôt, mais je n'ai aucune idée de ce que l'un des éléments signifie? – Max

+0

Les docs http://maven.apache.org/pom.html #SCM est assez clair: 'connection' et' developerConnection' pointent vers l'URL du référentiel SVN, 'tag' est optionnel, vous n'en avez pas besoin, et' url' est une URL vers un dépôt publiquement navigable – Tunaki

Répondre

1

D'abord, je commencerai par préciser l'utilisation de Maven qui semble provoquer la confusion dans votre cas:

Apache Maven est un outil de gestion de projet logiciel ... qui peut gérer ce projet construire.

Apache Maven n'a rien à voir avec vos révisions poussés à votre système de gestion de code source (SVN dans votre cas).

En règle générale, vous pousserez vos modifications par un IDE (Eclipse , IntelliJ IDEA et aussi bien) ou par une ligne de commande à votre dépôt SVN et vous ne en aucune façon être Poussant ces changements à travers Maven dans ce cas, vous allez dépasser son objectif d'utilisation.

Maintenant vient la question, pourquoi vous pourriez avoir besoin de ces propriétés SCM? La réponse est simple et devrait être pertinente puisque Maven est un outil de construction de projet, il doit gérer votre cycle de lancement de projet qui est la dernière partie du cycle de construction du projet ... Et il ne sera pas en mesure de le faire de manière cohérente sans mettre à jour vos informations de projet à distance puisque vous utilisez un référentiel distant SCM.

Revenons maintenant à ces SCM propriétés connexes, et qu'est-ce qu'ils veulent dire:

  • connexion: un point de terminaison de connexion URL à votre SCM référentiel et qui sera utilisé uniquement pour lecture accès.
  • DeveloperConnection: un point de terminaison de connexion à votre URL SCM référentiel et qui sera utilisé pour écrire accès. (C'est ce que le rôle de développeur est destiné à faire après tout, push changements dans le référentiel).
  • tag: il spécifie l'étiquette en vertu de laquelle la vie du projet et j'ai vu que HEAD utilisé là-bas et assumer serait la valeur par défaut.
  • url: il spécifie un explorable dépôt, comme celui passant par viewvc (Dans la plupart des cas, vous pouvez remplacer le chemin /svn/ sous votre URL de connexion avec /viewvc/)
0

SCM (S oftware C onfiguration M anagement, également appelé S ource C ode/C ontrol M anagement ou, de façon succincte, le contrôle de version) fait partie intégrante d'un projet en bonne santé. Si votre projet Maven utilise un système SCM (c'est le cas, n'est-ce pas?), Voici où vous placeriez cette information dans le POM.

connection, developerConnection: Les deux éléments de connexion indiquent comment connecter le système de contrôle de version via Maven. Où connection nécessite un accès en lecture pour que Maven puisse trouver le code source (par exemple, une mise à jour), developerConnection nécessite une connexion qui donnera un accès en écriture. Le projet Maven a engendré un autre projet appelé Maven SCM, qui crée une API commune pour tous les SCM qui souhaitent l'implémenter. Les plus populaires sont CVS et Subversion, cependant, il existe une liste croissante d'autres SCM pris en charge. Toutes les connexions SCM sont effectuées via une structure d'URL commune.

scm:[provider]:[provider_specific] 

Où fournisseur est le type de système SCM. Par exemple, la connexion à un référentiel CVS peut ressembler à ceci:

scm:svn:https://somerepository.com/svn_repo/trunk 

tag: Indique l'étiquette que ce projet vit sous. HEAD (ce qui signifie, la racine SCM) devrait être la valeur par défaut.

url: Référentiel accessible au public. Par exemple, via ViewCVS.

Source