Ich habe ein Eltern-Pom in einem Remote-Artifactory-Repository gespeichert. Das Eltern-Pom definiert ein <repositories>
-Tag mit einigen Snapshot-Repositorys, die das übergeordnete Element meines Eltern-Pom enthalten.Maven: Herunterladen eines Eltern Pom aus dem Repository löscht Repositories Tag
Wenn ich jetzt versuche, ein Projekt mit meinem Eltern-Pom zu erstellen, findet Maven das Eltern-Pom korrekt in meinem Artifactory-Repository und lädt es herunter.
Während des Erstellungsprozesses werden meine Snapshot-Abhängigkeiten jedoch nicht gefunden, da das übergeordnete Pom, das möglicherweise in meinem lokalen Repository landet, das <repositories>
-Tag nicht enthält.
Es funktioniert gut, wenn ich gerade mvn clean install
im Verzeichnis des Eltern-Pom ausführen, um es lokal zu installieren, aber das Herunterladen aus dem Repository scheint das Tag loszuwerden.
Das scheint mir wie ein Fehler, aber vielleicht fehlt mir etwas und das ist beabsichtigt Verhalten? Wenn ja warum? Gibt es eine Workaround, die wir verwenden können, um die Repositories im Parent-Pom zu definieren?
Eltern-pom wie auf dem artifactory Server gespeichert:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.M2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>example-parent</artifactId>
<version>1.0.1</version>
<packaging>pom</packaging>
<name>example-parent</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>example-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<distributionManagement>
<repository>
<id>example-releases</id>
<name>example-releases</name>
<url>http://com.example/blabla</url>
</repository>
<snapshotRepository>
<id>example-snapshots</id>
<name>example-snapshots</name>
<url>http://com.example/blabla</url>
</snapshotRepository>
</distributionManagement>
</project>
Eltern-pom wie aus dem Repository heruntergeladen, wenn mein Kind Projekt Aufbau:
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.M2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>example-parent</artifactId>
<version>1.0.1</version>
<packaging>pom</packaging>
<name>example-parent</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>example-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
<distributionManagement>
<repository>
<id>example-releases</id>
<name>example-releases</name>
<url>http://com.example/blabla</url>
</repository>
<snapshotRepository>
<id>example-snapshots</id>
<name>example-snapshots</name>
<url>http://com.example/blabla</url>
</snapshotRepository>
</distributionManagement>
</project>
(sogar einige Leerzeichen auch dann, wenn die Tags verwendet werden)
versucht löschen Sie es aus lokalen Repo und "mvn sauber installieren -U" off? –
Ja, es lädt den Pom aus dem Artefakt, aber die Kompilierung des untergeordneten Projekts schlägt fehl, da die Spring-Boot-Abhängigkeiten nicht gefunden werden können. Ein Blick in das lokale Repo zeigt mir, dass das Tag wieder gelöscht wurde. Installieren Sie das Elternpom lokal und dann versuchen, das Kind zu kompilieren funktioniert gut, aber ist nicht wirklich praktisch. – mhlz