Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
[Maven] neuerdings "No plugin found for prefix ..." errors
nun habe ich zwei Abhängigkeiten aktualisiert (GWT 2.4 ->GWT 2.5 und das gwt-maven-plugin 2.4->2.5). Nun erhalte ich folgenden Fehler beim bauen:
Code:
org.apache.maven.plugin.prefix.NoPluginFoundForPrefixException: No plugin found for prefix 'findbugs' in the current project and in the plugin groups
Das konnte ich beheben indem ich das findbugs plugin auch unter "PluginManagement" im Parent-Modul eingetragen habe.
Nun erhalte ich aber die selbe Fehlermeldung für "emma". Emma habe ich nirgend als plugin eingetragen - ich werde es nachholen. Ich schätze die selben Fehler bekomme ich dann für "pmd" und "checkstyle"?!
Da sich bis auf die Version einer Abhängigkeit und eines Plugins nichts geändert hat (von dem ich weiß) kann es eigentlich nicht an der pom als ganzes liegen?!
Die parentpom hat ca. 200 Zeilen und das Modul mit dem Hauptprojet hat eine pom mit ca. 500 Zeilen - die poste ich mal nicht. Aber die Dinge die ich geändert habe und mit denen es jetzt läuft. Wie gesagt ich würde gerne wissen wieso ich plötzlich wie emma oder finbugs explizit im parent deklarieren muss (plugins aus standard plugin-groups)
Das brachte plötzlich den genannten Fehler (das Ziel pmdmd funktionierte plötzlich auf dem parent nicht mehr)
Nun hab ich den obigen Code unter Plugin-Management im Parent eingetragen und es funktioniert wieder. (Meine Philosophie war immer im Plugin/Dependency Management nur gemeinsam genutzte Dinge einzutragen, da es nur 2 Module gibt: das eigentliche Projekt und ein Projekt für Integrationstests)
Nun hab ich den obigen Code unter Plugin-Management im Parent eingetragen und es funktioniert wieder. (Meine Philosophie war immer im Plugin/Dependency Management nur gemeinsam genutzte Dinge einzutragen, da es nur 2 Module gibt: das eigentliche Projekt und ein Projekt für Integrationstests)
Die Frage ist somit, ob Du im Parent POM (Unternehmens pom) auch für die genutzten Plugins diese auch entsprechend im pluginManagement mit entsprechender Version eingetragen hast...
Wenn nicht verstehe ich das Problem. Für Plugins die nicht mit der Version festgelegt sind, kann es sein, dass Maven z.B. nach dem löschen des lokalen Repositories neuere Versionen zieht als vorher oder auch oft auf Build Systemen beobachtet, da dort meist immer ein Repository bezogen auf den Workspace konfiguriert wird.
Mit Maven einen reproduzierbaren Build zu bekommen bedeutet, dass man alle Plugins die man verwendet immer in einer Unternehmens pom im pluginManagement Block festlegt...
Danke für deine Info kama (ich hate auf eine Antwort von dir gehofft ):
Aber so richtig verstehe ich es noch nicht. Also vorher war im Repository z.B. findbugs vorhanden und deshalb wusste maven was es bei findbugs:findbugs machen soll.
Dann löscht man es aus dem Repository und dann fehlt die Info welche version er braucht? Das versteh ich nicht, wird nicht eine "default-version" festgelegt?
Also release und compile plugin funktionieren doch auch ohne diese Angabe - die Version ist dann halt nicht kontrolliert sondern irgendwie willkürlich, oder?
Also sollten eigentlich in meinem Fall einfach die entsprechenden Plugins in irgendeiner Version geladen werden - sind ja alle aus Standardplugin-Groups?
Wenn Du den Build mit Maven 3 laufen gelassen hast hättest Du eigentlich eine Warning bzgl. einer fehlenden Plugin Version bekommen müssen. (Ich vermute, dass Du das übersehen hast!).
Die Konsequenz daraus ist, eben alle Plugins mit entsprechender Version in einer Unternehmens pom festzulegen (pluginManagement).
Ich vermute, dass für das release und compile plugin die Versionen irgendwo festgelegt wurden.
Das was Du geschrieben hast bzgl.
...die Version ist dann halt nicht kontrolliert sondern irgendwie willkürlich, oder?
Wenn man reproduzierbare Builds will, muss man eben alle Plugin Version festlegen (pluginManagement).
Das Depdency Plugin und das Version Plugin können helfen solche unschärfen zu finden und zu beheben, und natürlich die Maven Log Ausgabe, nur weil die groß ist darf man die nicht immer ignorieren.
Ich lasse mir gerne mal die effective Pom ausgeben, da stehen dann die verwendeten Versionen drinnen (auch die nicht definiert wurden), das übertrage ich dann per Copy & Paste in die pluginManagement Sektion.
Danke für den Hinweis auf das neue Maven. In meinem Falle hab ich seit Ewigkeiten 3.0.3 - insbesondere auf dem CI. Mir ist bewusst, dass ich jetzt die saubere Lösung habe. Ich finde es nur nach wie vor sehr seltsam, dass dies überhaupt passiert ist. Ich kann mich auch an Maven-Warnungen erinnern, die einen darauf hinweisen eine Version festzulegen. Für die dort genannten plugins hab ich dann auch getan nur findbugs, emma, pcm wurden nicht genannt und so sind die hinten runtergefallen - bis jetzt.