web-dev-qa-db-fra.com

Comment utiliser Bitbucket en tant que référentiel distant maven?

Nous prévoyons d'utiliser bitbucket comme référentiel de code source ainsi que référentiel distant pour nos projets basés sur maven. J'ai créé un référentiel sur bitbucket quelque chose comme ci-dessous:

https://bitbucket.org/mycompany/maven-repository

Comment puis-je pousser les pots de projet spécifiques à mon entreprise dans le référentiel distant ci-dessus en utilisant le pom.xml spécifique au projet? Pouvez-vous m'aider avec un exemple de pom.xml? Nous pousserions tous les pots spécifiques à l'entreprise dans le référentiel distant ci-dessus pour être utilisés par d'autres projets au sein de l'entreprise en tant que dépendances maven.

Voici ce que j'essayais jusqu'à présent de pousser un exemple de projet dans le référentiel distant:

<project xmlns="http://maven.Apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0
                  http://maven.Apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>corporate-pom</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<distributionManagement>
    <repository>
        <id>MyCompanyRepo</id>
        <url>https://bitbucket.org/mycompany/maven-repository</url>
    </repository>
</distributionManagement>
<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.7</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

Ce qui précède est un pom parent, qui sera inclus par tous les autres projets au sein de l'entreprise et je voulais le pousser vers le référentiel distant pour être utilisé par d'autres projets spécifiques de l'entreprise.

Lorsque j'exécute la commande mvn deploy , voici l'erreur que j'obtiens:

C:\Cooler\Work\dev\Projects\mycompany\wal-common>mvn deploy
[WARNING]
[WARNING] Some problems were encountered while building the effective settings
[WARNING] Unrecognised tag: 'snapshotPolicy' (position: START_TAG seen ...</layo
ut>\n          <snapshotPolicy>... @203:27)  @ C:\Users\cooler\.m2\settings.xml,
line 203, column 27
[WARNING]
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building corporate-pom 1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ corporate-pom
---
[INFO] Installing C:\Cooler\Work\dev\Projects\mycompany\wal-common\pom.xml to C:\
Users\cooler\.m2\repository\com\mycompany\corporate-pom\1.0\corporat
e-pom-1.0.pom
[INFO]
[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ corporate-pom ---
Uploading: https://bitbucket.org/mycompany/maven-repository/com/mycompany/corporate-   pom/1.0/corporate-pom-1.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.607s
[INFO] Finished at: Tue Sep 17 14:33:01 MST 2013
[INFO] Final Memory: 7M/122M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.Apache.maven.plugins:maven-deploy-plugin:2.7:
deploy (default-deploy) on project corporate-pom: Failed to deploy artifacts: Co
uld not transfer artifact com.mycompany:corporate-pom:pom:1.0 from/
to CompanyREPO (https://bitbucket.org/mycompany/maven-repository): Connection to h
ttp://:8080 refused: Connection refused: connect -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/MojoExecutionE
xception 

Merci de votre aide.

27
cooler

Vous pouvez essayer http://synergian.github.io/wagon-git/index.html il contient des instructions pour bitbucket.

Une alternative à l'utilisation de bitbucket est d'utiliser un dossier dropbox pour l'entreprise. https://code.google.com/p/peter-lavalle/wiki/MavenOnDropBox Contient un très bon guide étape par étape sur la façon de procéder.

14
ams

Installez les fichiers JAR dans un référentiel Maven local.

Créez un répertoire, par exemple maven-repo/repository

cd dans maven-repo

exécutez ce qui suit (en remplaçant les arguments par ceux qui sont pertinents pour votre pot):

mvn install:install-file -DgroupId=com.rapid_i -DartifactId=rapidminer -Dversion=5.3.006 -Dfile=/path/to/artifact/rapidminer.jar -Dpackaging=jar -DgeneratePom=true -DlocalRepositoryPath=./repository  -DcreateChecksum=true

Partagez le dossier dans un référentiel public BitBucket.

Créez un référentiel dans votre pom.xml pointant vers votre dossier bitbucket. (Vous devez utiliser/raw/master dans le chemin https://bitbucket.org/your-user-or-group/your_maven-repo = /raw/master/ !!)

<project xmlns="http://maven.Apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.activeintel</groupId>
<artifactId>rapidminer-proj</artifactId>
<version>0.0.1</version> 

<!-- Dependency to jar on Maven Repository on Git-BitBucket -->
<dependencies>
    <dependency>
        <groupId>com.rapid_i</groupId>
        <artifactId>rapidminer</artifactId>
        <version>5.3.006</version>
    </dependency>
</dependencies>

<!-- Maven Repository on Git-BitBucket -->
<repositories>
<repository>
    <id>neil_rubens-repository</id>
    <url>https://bitbucket.org/your-user-or-group/your_maven-repo/raw/master/repository/</url>
</repository>
</repositories>

</project>

Source: Hébergement du référentiel Maven pour les fichiers tiers sur Git (Bitbucket/Github)

10
delkant

Comment puis-je pousser les pots de projet spécifiques à mon entreprise dans le référentiel distant ci-dessus en utilisant le pom.xml spécifique au projet?

Vous ne peut pas. ne devrait pas à mon avis.

Bitbucket n'est pas destiné à être référentiel maven . Essayer d'obtenir maven pour déployer des artefacts sur BitBucket c'est juste faux  peut contrevenir aux conditions d'utilisation d'Atlassian. D'un autre côté, ça pourrait être bien.

Vous soit besoin de devrait plutôt être déployé sur votre propre référentiel local ou public.

1
mounds

J'ai maintenant réussi à faire fonctionner ça. J'ai suivi ces instructions et je peux déployer des artefacts sur bitbucket, puis les utiliser dans un autre projet maven.

Les ajustements que j'ai dû apporter pour le faire fonctionner étaient:

  1. Mettre à niveau Wagon-Git vers v0.2.0
  2. Configurez Git à l'aide de git config --global user.email car il ne semble pas reprendre le paramètre --local que j'avais utilisé précédemment

J'ai également ajouté manuellement un fichier README.md au dépôt, mais je ne pense pas que cela était réellement nécessaire.

Une fois que vous avez déployé avec succès sur le référentiel, vous devriez voir tous vos fichiers de la manière habituelle via le frontal Web BitBucket.

0
BigMikeW