So laden Sie Quellen in das lokale Maven-Repository hoch

Lesezeit: 3 Minuten

Benutzer-Avatar von Andriy Kopachevskyy
Andriy Kopachevskyy

Angenommen, ich habe ein Maven 2 Java-Projekt auf meinem lokalen Computer. Ich baue das Projekt .jar Datei und schiebe sie mit in mein lokales Maven-Repo mvn install.

Frage:

Wie kann ich Maven zwingen, auch die Projektquellen zu pushen? jar zum lokalen Repo?

Dies ist nützlich, wenn ich das oben genannte Projekt beim Entwickeln eines neuen Projekts als Abhängigkeit verwende und das verwenden kann mvn eclipse:eclipse -DdownloadSources Besonderheit.

Benutzer-Avatar von Sean Patrick Floyd
Sean Patrick Floyd

Dieses Snippet installiert/bereitstellt automatisch ein Quell-JAR aus jeder Installation/Bereitstellung:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>[whatever version is current]</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>

Verwenden Sie diesen Link, um nachzuschauen aktuelle Version der maven-source-plugin

Oder über die Befehlszeile:

mvn clean source:jar install

  • Wow, es ist so einfach! Es war schwer, dies auf der Maven-Site zu finden, danke!

    – Andriy Kopachevskyy

    28. Okt. 2010 um 8:40 Uhr

  • Gibt es eine Möglichkeit, dies über die Befehlszeile zu tun, ohne den POM zu bearbeiten?

    – Hertzsprung

    21. Mai 2012 um 16:06 Uhr

  • @hertzsprung sicher: mvn clean source:jar install

    – Sean Patrick Floyd

    21. Mai 2012 um 21:05 Uhr

  • Vergessen Sie nicht, die neueste Plugin-Version zu verwenden. Die aktuellste Version ist 3.2.1

    – Ofir Meguri

    19. März 2020 um 8:16 Uhr

  • Der lustigste Teil ist die Reihenfolge der Plugins in der Befehlszeile („source:jar install“ funktioniert, aber „install source:jar“ funktioniert bei mir nicht, maven3.5.2/java8)

    – abstrakter Hund

    1. August 2020 um 5:06 Uhr

Ich habe eine bessere Antwort gefunden. Fügen Sie diese einfach zu Ihrer pom.xml hinzu

 <build>
      <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
            <execution>
                <id>attach-sources</id>
                <goals>
                    <goal>jar</goal>
                </goals>
            </execution>
        </executions>
       </plugin>
     </plugins>
  </build>

Und führen Sie es über die Befehlszeile aus:

mvn install

Jetzt wird Maven auf Ihrem lokalen Repository-JAR und Ihren Quellen installiert

Lösung gefunden auf: https://www.mkyong.com/maven/generate-source-code-jar-for-maven-based-project/ (Ich bin in keiner Weise verbunden)

Eine Ergänzung zur obigen Antwort:

Bei mir funktionierte es immer noch nicht richtig. Die Datei „sources.jar“ wurde generiert und war im Zielordner verfügbar, jedoch nicht im lokalen Repository. Der Grund dafür war, dass ich die Phase anders angegeben habe: <phase>install</phase> In diesem Fall wird zuerst das Maven-Installations-Plugin ausgeführt und kopiert die JAR-Dateien in das lokale Repo. Anschließend wird die source.jar generiert (und somit nicht kopiert).

[INFO] --- maven-install-plugin:2.4:install (default-install) @ foo ---
[INFO] Installing foo.jar into local repo
[INFO] Installing pom.xml into local repo
[INFO] Installing javadoc.jar into local repo
[INFO]
[INFO] --- maven-source-plugin:3.0.1:jar-no-fork (attach-sources) @ foo ---
[INFO] Building jar: foo-sources.jar

Daher ist es wichtig, eine frühere Phase als die Installation anzugeben (wie in der akzeptierten Antwort korrekt erwähnt).

mvn install:install-file -Dfile=hello-world-1.0.0.jar -Dsources=hello-world-1.0.0-sources.jar -DpomFile=hello-world-1.0.0.pom

1452270cookie-checkSo laden Sie Quellen in das lokale Maven-Repository hoch

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy