# Maven Warnung "'version' contains an expression but should be a constant" in Eclipse verstecken



## Robertop (20. Apr 2022)

Hallo zusammen,

ich habe an einem Projekt etwas an der Struktur geändert, sodass ich Versionsnummern zentral ablegen kann. Bei den einzelnen Modulen steht in den Poms also nur der Name des Properties als Versionsnummer:


```
<artifactId>my-supercool-module</artifactId>
<version>${my-supercool-module-version}</version>
<packaging>jar</packaging>
```

Im Prinzip funktioniert auch alles. Mich nervt nur, dass Ich in Eclipse jetzt überall die kleinen Ausrufezeichen sehe, weil er mich warnt, dass *'version' contains an expression but should be a constant*.
Gibt es irgendwo in Eclipse eine Einstellung, mit der ich diese Meldung verstecken kann, damit ich nicht mehr überall Ausrufezeichen habe?


----------



## KonradN (20. Apr 2022)

Das ist eine Warnung von Maven und nicht von Eclipse. Wenn Du also dasProjekt auf der Kommandozeile baust, dann solltest Du das auch sehen!

Dazu gibt es auch ein Ticket mit diversen Meinungen: https://issues.apache.org/jira/browse/MNG-4715

In ganz kurz ist derzeit einfach die Aussage: Maven will in der Version keinen solchen Ausdruck haben.

Unabhängig davon ist die Frage: Was willst Du erreichen? Ich würde da ggf. Workarounds nutzen z,B. https://www.mojohaus.org/versions-maven-plugin/index.html mit versions:set um Versionen zu setzen. Dann hast Du die Pflege in einer zentralen pom und die Children Versionen werden gesetzt bei der initialize Phase.


----------



## LimDul (20. Apr 2022)

Wir haben das bei uns so gelöst, dass nur in der obersten POM eine <version> Eintrag ist. Bei allen anderen modulen ist einfach keiner da, weswegen der aus dem Parent-Pom greift. Und diese Referenz wird ja bei maven release automatisch aktualisiert.


----------



## Robertop (20. Apr 2022)

KonradN hat gesagt.:


> Das ist eine Warnung von Maven und nicht von Eclipse. Wenn Du also dasProjekt auf der Kommandozeile baust, dann solltest Du das auch sehen!


Die Warnung ist in der Konsole beim Build tatsächlich auch zu sehen, aber das stört mich eigentlich nicht. Ich finde es nur ein wenig unglücklich, dass die Markierung in Eclipse dauernd da ist. Meine Hoffnung war, dass man Eclipse irgendwie beibringen kann, genau diese Maven Warnung einfach zu ignorieren.




KonradN hat gesagt.:


> Unabhängig davon ist die Frage: Was willst Du erreichen? Ich würde da ggf. Workarounds nutzen z,B. https://www.mojohaus.org/versions-maven-plugin/index.html mit versions:set um Versionen zu setzen. Dann hast Du die Pflege in einer zentralen pom und die Children Versionen werden gesetzt bei der initialize Phase.


Ich Suche nach einer Möglichkeit, die Versionsnummern meiner Module einzeln anpassen zu können, aber trotzdem nur an einer Stelle pflegen zu müssen. Normalerweise ist die Nummer bei uns im DependencyManagement in der Parent POM und dann nochmal in der POM des jeweiligen Modules gepflegt. Meine Idee war jetzt, sozusagen eine "ZwischenPom" zu machen, in der die Versionsnummern stehen, sodass sowohl die Module als auch die SuperPom die benutzen können.
Das geht ja wie gesagt auch, nur die Warnung in der IDE stört mich. 😇


----------



## yfons123 (20. Apr 2022)

wenn du auf die warnung klickst wird dir normal die lösugn vorgeshclagen und eine möglichkeit die warnugns einstellungen anzupassen

wenn du auf die anpassung klickst sollte eclipse eine einstellungs seite aufmachen die dich gneau zu der warnung bringt
da einfach auf ignore stellen

oder irgendwo ist ein button wenn du auf die warnung klickstdass diese warnung immer ignoriert werden soll


----------



## KonradN (20. Apr 2022)

Robertop hat gesagt.:


> Ich Suche nach einer Möglichkeit, die Versionsnummern meiner Module einzeln anpassen zu können, aber trotzdem nur an einer Stelle pflegen zu müssen. Normalerweise ist die Nummer bei uns im DependencyManagement in der Parent POM und dann nochmal in der POM des jeweiligen Modules gepflegt. Meine Idee war jetzt, sozusagen eine "ZwischenPom" zu machen, in der die Versionsnummern stehen, sodass sowohl die Module als auch die SuperPom die benutzen können.
> Das geht ja wie gesagt auch, nur die Warnung in der IDE stört mich. 😇


Dann schau Dir doch einmal das Plugin an. Damit solltest Du aus dem Parent POM heraus die Versionen der child Projekte setzen können.


----------

