2016-04-04 16 views
0

Ich habe 2 Projekte, eines ist eine Webapp, eines ein Glas. Beide sind Projekte in Maven und die Webapp nutzt das Jar als Abhängigkeit. Ich habe vor kurzem das buildnumber-maven-plugin in beiden implementiert, so dass nun jeder eine $ {buildNumber} -Eigenschaft hat, um auf die scm-Revision zu verweisen.Holen Sie sich Eigentum von Maven Dependency

Ich habe eine Benutzeroberfläche, die ich die Versionen von beiden zeigen und die Revisionsnummer sowie die Versionsnummern anzeigen möchten. Wie kann ich die $ {buildNumber} -Eigenschaft von der Pom der Abhängigkeit von der Hauptanwendung bekommen?

Antwort

0

Ich würde Maven verwenden, um in eine Eigenschaftendatei zu schreiben, und diese Datei wird von einem Servlet oder ähnlichem gelesen.

Ich habe es nicht getestet, aber das ist ein Hinweis. Erstens, eine Eigenschaftendatei, in meinem Krieg. Diese Datei enthält:

version = ${project.version} //the value comes from maven 

Secondely, ein Servlet oder was auch immer Server-Seite (REST-Ressource zum Beispiel), daß diese Eigenschaft lesen kann und die Kommunikation mit den vorderen

Drittens das POM des modifizierenden Krieg wie folgt aus:

<build> 
     <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
       <includes> 
        <include>**/*.properties</include> 
       </includes> 
      </resource> 
     </resources> 
<build> 

Hope this Hilfe

+0

habe das schon, das bringt mich auf die Abhängigkeitsversion, aber nicht die Revision # – nmb1106

+0

mein Schlechter, so kann das Ende dieses Artikels möglicherweise helfen http://blog.codehangover.com/track-every-build- number-with-maven/ – vincent

0

wieangegeben Die Revisionsnummer ist mit $ {buildNumber} in Ihrem Pom verfügbar.

Um es an die Ressourcen zu propagieren, die für Sie verfügbar sind, können Sie Anweisungen von vincents Antwort verwenden.

+0

gleiche Sache, das bekommt man die Build-Nummer der aktuellen App, aber wie wäre es mit Abhängigkeiten? – nmb1106

+0

Wenn Sie die Build-Nummer zusätzlicher JAR in der WAR kennen möchten, können Sie in jeder JAR-Datei eine Eigenschaftendatei mit Build-Nummer haben: jar1_version.properties, jar2_version.properties. Dann können Sie sie im Hauptkrieg aus dem Klassenpfad laden: 'String props [] = new String [] {" jar1_ver.props "," jar2_ver.props "}; für (String p: Arrays.asList (Requisiten)) { Eigenschaften p1 = neue Eigenschaften(); p1.load (this.getClass(). GetResourceAsStream (p)); p1.get ("Version"); } ' –