wake-up-neo.net

Maven 3 Warnungen zu build.plugins.plugin.version

Seit ich auf Maven 3 aktualisiert habe, bekomme ich bei jedem Build die folgenden Warnmeldungen:

Wie kann ich diese Warnungen loswerden?

[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for proj:id:jar:3.1
[WARNING] 'build.plugins.plugin.version' for org.Apache.maven.plugins:maven-javadoc-plugin is missing. @ line 195, column 15
[WARNING] 'build.plugins.plugin.version' for org.Apache.maven.plugins:maven-compiler-plugin is missing. @ line 204, column 15
[WARNING] 'build.plugins.plugin.version' for org.Apache.maven.plugins:maven-surefire-plugin is missing. @ line 227, column 15
[WARNING] 'build.plugins.plugin.version' for org.Apache.maven.plugins:maven-jar-plugin is missing. @ line 215, column 15
[WARNING] 'reporting.plugins.plugin.version' for org.codehaus.mojo:jdepend-maven-plugin is missing. @ line 271, column 15
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
282
Istao

Fügen Sie ein <version>-Element nach dem <plugin><artifactId> in Ihrer pom.xml-Datei ein. Finden Sie den folgenden Text:

<plugin>
  <artifactId>maven-compiler-plugin</artifactId>

Fügen Sie das Versions-Tag hinzu:

<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.3.2</version>

Die Warnung sollte behoben sein.

Was das betrifft:

'build.plugins.plugin.version' für org.Apache.maven.plugins: maven-compiler-plugin fehlt

Viele Leute haben warum erwähnt - das Problem tritt auf, schlägt jedoch keine Korrektur vor. Ich musste nur in meine POM-Datei für mein Projekt gehen und den <version>-Tag wie oben gezeigt hinzufügen.

Um die Versionsnummer zu ermitteln, können Sie die Maven-Ausgabe nach dem Ausführen überprüfen. Wenn Ihnen Versionsnummern fehlen, zeigt Maven seine Standardversion an:

[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ entities ---

Nehmen Sie diese Versionsnummer (wie oben in 2.3.2) und fügen Sie sie wie gezeigt zu Ihrem POM hinzu.

353
Todd

Laufen wie:

 $ mvn help: Beschreibe -DartifactId = Maven-War-Plugin -DgroupId = org.Apache.maven.plugins 

für Plug-Ins, die keine Version haben. Sie erhalten Ausgabe:

 Name: Maven WAR Plugin 
 Beschreibung: Erstellt eine WAR-Datei (Web Application Archive) aus dem Projekt 
 Ausgabe und ihre Abhängigkeiten .
 Gruppen-ID: org.Apache.maven.plugins 
 Artefakt-ID: maven-war-plugin 
 Version: 2.2 
 Zielpräfix: war 

Verwenden Sie die in der Ausgabe angezeigte Version.

UPDATE Wenn Sie eine Liste der Versionen auswählen möchten, verwenden Sie http://search.maven.org/ oder http://mvnrepository.com/ Beachten Sie, dass Sie Java als Favorit verwenden IDE muss Dialogfeld zum Suchen von Maven-Paketen haben. Überprüfen Sie einfach die Dokumente.

SUPER UPDATE benutze ich auch:

$ mvn dependency:tree
$ mvn dependency:list
$ mvn dependency:resolve
$ mvn dependency:resolve-plugins  # <-- THIS

Kürzlich entdeckte ich, wie man die latest -Version für das Plug-In (oder die Bibliothek) erhält, sodass man nicht mehr googeln oder Maven Centralbesuchen muss. _:

$ mvn versions:display-dependency-updates
$ mvn versions:display-plugin-updates     # <-- THIS
76
gavenkoa

Maven 3 ist mit der POM-Struktur restriktiver. Sie müssen beispielsweise Versionen von Plugins einstellen.

Mit maven 3.1 können diese Warnungen Ihren Build zerstören. Es gibt weitere Änderungen zwischen maven2 und maven3: https://cwiki.Apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes

13

Ich verwende ein übergeordnetes Pom für meine Projekte und wollte die Versionen an einer Stelle angeben. Daher habe ich Eigenschaften verwendet, um die Version anzugeben:

elternteil Pom:

<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">
    ....
    <properties>
        <maven-compiler-plugin-version>2.3.2</maven-compiler-plugin-version>
    </properties>
    ....
</project>

projekt pom:

<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">
    ....
    <build>
        <finalName>helloworld</finalName>
        <plugins>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin-version}</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Siehe auch: https://www.allthingsdigital.nl/2011/04/10/maven-3-and-the-versions-dilemma/

9

die neuesten Versionsinformationen erhalten Sie von:

https://mvnrepository.com/artifact/org.Apache.maven.plugins/maven-compiler-plugin

klicken Sie auf die neueste Version (oder die Version, die Sie verwenden möchten) und Sie sehen die Abhängigkeitsinformationen:

<!-- https://mvnrepository.com/artifact/org.Apache.maven.plugins/maven-compiler-plugin -->
<dependency>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.6.1</version>
</dependency>

möglicherweise möchten Sie das Versions-Tag und den Kommentar für Ihr Plugin-Tag verwenden.

<!-- https://mvnrepository.com/artifact/org.Apache.maven.plugins/maven-compiler-plugin -->
<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.6.1</version>
    <configuration>
        <source />
        <target />
    </configuration>
</plugin>

wenn Sie möchten, können Sie Ihr Pom so ändern, dass die Versionsinformationen im Eigenschaften-Tag enthalten sind, wie in einer anderen Antwort beschrieben.

4
Wolfgang Fahl

Es ist eine großartige Antwort hier. Und ich möchte hinzufügen "Warum ein Element in Maven3 hinzufügen".
In Maven 3.x Kompatibilitätshinweise

Plugin-Metaversion-Auflösung
Intern verwendete Maven 2.x die speziellen Versionsmarkierungen RELEASE und LATEST, um die automatische Versionsauflösung von Plugins zu unterstützen. Diese Metaversionen wurden auch im Element für eine Deklaration erkannt. Für reproduzierbare Builds unterstützt Maven 3.x die Verwendung dieser Metaversionen im POM nicht mehr. Daher müssen Benutzer Vorkommen dieser Metaversionen durch eine konkrete Version ersetzen.

Und ich finde auch in Maven-Compiler-Plugin - Verwendung

Hinweis: Maven 3.0 gibt Warnungen aus, wenn Sie die Version eines Plugins nicht angeben.

2
ohahohah

Suchen Sie nach "maven-jar-plugin" in pom.xml Und fügen Sie das Versions-Tag Maven-Version hinzu

0
Shukant