Explication détaillée des référentiels et de la gestion de la distribution dans le pom.xml de maven

référentiels configuration de l'entrepôt distant

Dans maven, pom.xml est le principal fichier de configuration pour que Maven fonctionne. Son rôle comprend: la configuration de l'entrepôt distant qui doit être utilisé dans le projet Maven et la dépendance des ressources du projet Maven. Le pom est l'abréviation de Project Object Model.

Le rôle de la balise repositories dans pom.xml est de configurer l'entrepôt distant du projet maven. Les exemples sont les suivants:

<repository>
    <id>nexus</id><!--远程仓库唯一标识符 -->
    <name>Private Repository</name><!--描述 -->
    <url><!--远程仓库url --></url>
    <layout>default</layout>
    <releases>  
        <enabled>true</enabled>  
    </releases>  
    <snapshots>
       <enabled>true</enabled>
       <updatePolicy>always</updatePolicy>
    </snapshots>
</repository>

Examinons d'abord la configuration. Vous pouvez en ajouter plusieurs sous, chacune avec son identifiant unique, un nom descriptif et, surtout, l'URL de l'entrepôt distant. De plus, true indique à Maven de télécharger les composants de la version finale à partir de ce référentiel, et false indique à Maven de ne pas télécharger les composants de la version d'instantané à partir de ce référentiel. Il est recommandé d'interdire le téléchargement de composants d'instantané à partir de référentiels publics, car ces composants sont instables et hors de votre contrôle, vous devez donc éviter de les utiliser. Bien sûr, si vous souhaitez utiliser l'entrepôt à l'intérieur de l'organisation dans le réseau local, vous pouvez activer la prise en charge des instantanés

layout: Le type de disposition d'entrepôt utilisé pour localiser et trier les composants - il peut être par défaut (par défaut) ou hérité (hérité). Maven 2 fournit une disposition par défaut pour son entrepôt; cependant, Maven 1.x a une disposition différente. Nous pouvons utiliser cet élément pour spécifier si la mise en page est par défaut (par défaut) ou héritée (héritée).

distributionManagement distribue les composants aux entrepôts distants

mvn install installera les composants générés par le projet dans l'entrepôt Maven local, et mvn deploy est utilisé pour distribuer les composants générés par le projet vers l'entrepôt Maven distant. Les composants de l'entrepôt Maven local ne peuvent être utilisés que par l'utilisateur actuel. Après avoir été distribués à l'entrepôt Maven distant, tous les utilisateurs qui peuvent accéder à l'entrepôt peuvent utiliser vos composants.

Nous devons configurer le POM pour spécifier l'emplacement des composants de distribution Maven, comme suit:

<!-- 定义snapshots库和releases库的nexus地址 -->
<distributionManagement>
    <repository>
        <!-- 库的id -->
        <id>nexus-releases</id>
        <!-- 库的url -->
        <url>https://172.17.103.59:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>nexus-snapshots</id>
        <url>https://172.17.103.59:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

S'il s'agit d'une version de snapshot, elle sera automatiquement publiée dans le référentiel de snapshots lors de l'exécution de mvn deploy. Lors de l'utilisation de la version snapshot du module, sans changer le numéro de version, lors de la compilation et de l'empaquetage directs, maven téléchargera automatiquement la dernière version du snapshot depuis le serveur miroir.

S'il s'agit d'une version officielle, elle sera automatiquement publiée dans la bibliothèque de versions officielle lors de l'exécution de mvn deploy et la version officielle du module sera utilisée. Sans changer le numéro de version, lors de la compilation et de l'empaquetage, si le module de cette version existe déjà localement, il utilisera le module local au lieu de le télécharger activement sur le serveur miroir.

Il convient de noter que la valeur id sous l'élément serveur dans settings.xml doit être exactement la même que la valeur id sous le référentiel ou snapshotRepository dans le POM. Placez les informations d'authentification sous les paramètres au lieu du POM, car le POM est souvent visible par les autres et le settings.xml est local. code montrer comme ci-dessous:

<settings>
    ...    
    <servers>
        <server>
            <id>nexus-releases</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
        <server>
            <id>nexus-snapshots</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
    </servers>
    ...
</settings>

Je suppose que tu aimes

Origine blog.csdn.net/weixin_41003771/article/details/115183595
conseillé
Classement