Maven:wie ich meine pom.xml so einrichte, dass sie Abhängigkeiten über HTTP abrufen und Module über FTP bereitstellen kann

StackOverflow https://stackoverflow.com//questions/24022469

Frage

Ich versuche, pom.xml für eines meiner Projekte einzurichten.Und ich kann nicht herausfinden, wie ich Abhängigkeiten über HTTP abrufen, aber neue Artefakte über FTP bereitstellen kann.

Hier ist die Situation.Ich habe ein Projekt mit mehreren Modulen, an dem ich gemeinsam mit einigen anderen Leuten arbeite.Ich miete auch zufällig einen günstigen Webserver, der es mir ermöglichen könnte, Release- und Snapshot-Versionen einiger meiner Module über ein Maven-Repository zu teilen.

Ich möchte, dass die Bereitstellung im Repository authentifiziert wird (damit nur autorisierte Personen darauf schreiben können) und über FTP erfolgt.

Andererseits möchte ich, dass jeder die veröffentlichte Version der Artefakte anonym über HTTP herunterladen kann.

Bisher habe ich nur gefunden, dass ich den folgenden Abschnitt zu meiner pom.xml hinzugefügt habe

<distributionManagement>
    <snapshotRepository>
        <id>my.repo.snapshots</id>
        <name>My Repository - Snapshots</name>
        <url>${url}/snapshots</url>
    </snapshotRepository>
    <repository>
        <id>my.repo.releases</id>
        <name>My Repository - Releases</name>
        <url>${url}/releases</url>
    </repository>
</distributionManagement>

Das Problem bei diesem Setup besteht darin, dass ich nicht FTP zum Hochladen und HTTP zum Herunterladen auswählen kann.

Gibt es eine Möglichkeit, meine pom.xml dafür zu konfigurieren?

War es hilfreich?

Lösung

Es stellte sich heraus, dass die Lösung direkt vor meiner Nase lag.Die Repositorys für die Bereitstellung von Artefakten werden tatsächlich durch konfiguriert <distributionManagement/>, aber Repositorys zum Abrufen von Artefakten werden über konfiguriert <repositories> Element in der <profiles> Abschnitt.

Meine funktionierende pom.xml-Konfiguration umfasst jetzt:

<distributionManagement>
    <repository>
        <id>deploy.releases</id>
        <name>Repository - Releases</name>
        <url>ftp://ftp.domain.com/releases/</url>
    </repository>
    <snapshotRepository>
        <id>deploy.snapshots</id>
        <name>Repository - Snapshots</name>
        <url>ftp://ftp.domain.com/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

<profiles>
    <profile>
        <id>project.default</id>

        <activation>
            <property>
                <name>!skipProjectDefaultProfile</name>
            </property>
        </activation>

        <repositories>
            <repository>
                <id>repo.releases</id>
                <url>http://maven.domain.com/releases/</url>
            </repository>
            <repository>
                <id>repo.snapshots</id>
                <url>http://maven.domain.com/snapshots/</url>
            </repository>
        </repositories>
    </profile>
</profiles>

Darüber hinaus enthält meine Settings.xml die Authentifizierungsinformationen für FTP

<servers>
    <server>
        <id>deploy.releases</id>
        <username>user</username>
        <password>pass</password>
    </server>
    <server>
        <id>deploy.snapshots</id>
        <username>user</username>
        <password>pass</password>
    </server>
</servers>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top