39 votes

Comment configurer Maven pour le développement hors ligne?

Est-ce que maven nécessite une connexion Internet à un moment donné pour pouvoir l'utiliser? Cela signifie-t-il spécifiquement obtenir les plug-ins Maven internes pour la compilation, le nettoyage, l’emballage, etc.?

56voto

nsfyn55 Points 4753

Vous pouvez exécuter maven en mode hors connexion mvn -o install . Bien entendu, tous les artefacts non disponibles dans votre référentiel local échoueront. Maven n'est pas basé sur des référentiels distribués, mais ils rendent les choses plus transparentes. C’est pour cette raison que de nombreux magasins utilisent des miroirs internes synchronisés de manière incrémentielle avec le dépôt central.

De plus, les mvn dependency:go-offline peuvent être utilisés pour vous assurer que toutes vos dépendances sont installées localement avant de commencer à travailler en mode hors connexion.

6voto

Marcelo Points 6708

Si vous avez un PC avec accès à internet sur votre réseau local, vous devez installer un référentiel Maven local.

Je recommande Artifactory Open Source. C'est ce que nous utilisons dans notre organisme, il est vraiment facile à installer.

Artifactory agit comme un proxy entre votre outil build (Maven, Ant, de Lierre, de Gradle, etc.) et le monde extérieur.

Il met en cache distant artefacts de sorte que vous n'avez pas à télécharger les plus et plus de nouveau.

Il bloque indésirables (et parfois sensibles à la sécurité) des demandes externes internes des artefacts et des contrôles de comment et où les artefacts sont déployés, et par qui.

Après la mise en place Artifactory vous avez juste besoin de changement du Maven settings.xml dans le développement des machines:

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <mirrors>
    <mirror>
      <mirrorOf>*</mirrorOf>
      <name>repo</name>
      <url>http://maven.yourorganization.com:8081/artifactory/repo</url>
      <id>repo</id>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <repositories>
        <repository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>libs-release</name>
          <url>http://maven.yourorganization.com:8081/artifactory/libs-release</url>
        </repository>
        <repository>
          <snapshots />
          <id>snapshots</id>
          <name>libs-snapshot</name>
          <url>http://maven.yourorganization.com:8081/artifactory/libs-snapshot</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>plugins-release</name>
          <url>http://maven.yourorganization.com:8081/artifactory/plugins-release</url>
        </pluginRepository>
        <pluginRepository>
          <snapshots />
          <id>snapshots</id>
          <name>plugins-snapshot</name>
          <url>http://maven.yourorganization.com:8081/artifactory/plugins-snapshot</url>
        </pluginRepository>
      </pluginRepositories>
      <id>artifactory</id>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>artifactory</activeProfile>
  </activeProfiles>
</settings>

Nous avons utilisé cette solution car nous avons eu des problèmes avec l'accès à internet dans nos machines de développement et certains artefacts téléchargé des fichiers corrompus ou n'a pas de téléchargement à tous. Nous n'avons pas eu de problèmes depuis.

5voto

FrVaBe Points 14559

Maven besoins les dépendances dans votre dépôt local. La meilleure façon de les obtenir, c'est avec accès à internet (ou plus difficile en utilisant d'autres solutions fournies ici).

Donc, supposé que vous pouvez obtenir temporairement l'accès à internet, vous pouvez préparer à passer en mode hors connexion à l'aide de l' maven-dépendance-plugin avec ses dépendances:les aller-hors ligne de but. Cela permettra de télécharger toutes vos dépendances d'un projet à votre dépôt local (bien sûr, les changements dans les dépendances / plugins nécessitera de nouvelles internet / référentiel central d'accès).

3voto

Jyoti Prakash Points 205

Vous avez deux options pour cela:

1.) apporter des modifications dans le settings.xml ajouter ceci dans la première balise

 <localRepository>C:/Users/admin/.m2/repository</localRepository>
 

2.) utilisez la balise -o pour la commande hors ligne.

 mvn -o clean install -DskipTests=true
mvn -o jetty:run
 

2voto

msangel Points 1716

En préparation avant de travailler hors ligne, exécutez simplement mvn dependency:go-offline

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: