2016-03-31 9 views
1

Gibt es eine Möglichkeit, eine Mule-Anwendung als Embedded Stand-alone-Krug mit Maven (möglicherweise mit Hilfe von Mule Maven Plugin) zu bauen?Mule: Embedded-Anwendung mit Maven erstellen

Wie sollte die Pom konfiguriert werden?

Die MuleSoft-Dokumentation besagt, dass Sie eine eingebettete Anwendung erstellen können, indem Sie alle Abhängigkeiten manuell hinzufügen. Aber ich hoffe, es gibt eine Möglichkeit, diese Aufgabe zu automatisieren.

Danke,

Antwort

0

Sie können eine Maven-Anwendung erstellen und hängen nur von org.mule.distributions:mule:jar:embedded:3.7.0 aber dies wird eine App mit allen Mule Klassen in der es nicht schaffen, was meiner Meinung nach ein nützlicher Ansatz ist (obwohl ich don‘ Ich verstehe dein Szenario).

Wenn Sie alle Abhängigkeiten in Ihrem Anwendungspaket bündeln müssen, können Sie Maven Assembly Plugin verwenden, um alle Abhängigkeiten in eine Zip-Datei aufzunehmen. Zuerst fügen Sie die Plugin-Konfiguration auf Ihre pom wie folgt aus:

  <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
        <configuration> 
         <descriptors> 
          <descriptor>assembly.xml</descriptor> 
         </descriptors> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

und stell 'das eine assembly.xml Datei in Ihrem Projekt Stammverzeichnis enthält:

<assembly> 
    <id>application-name</id> 
    <formats> 
     <format>zip</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <dependencySets> 
     <dependencySet> 
      <outputDirectory>lib</outputDirectory> 
      <scope>runtime</scope> 
      <fileMode>0644</fileMode> 
     </dependencySet> 
    </dependencySets> 
</assembly> 
+0

Ja, ich habe das ausprobiert. Es baut tatsächlich die Anwendung, aber wenn Sie versuchen, es auszuführen, scheitert es an fehlenden Abhängigkeiten. Also müssen Sie Ihre App tatsächlich ausführen, um herauszufinden, welche Bibliotheken fehlen. Und Sie müssen dies einzeln für jede Abhängigkeit tun. Und dann wirst du feststellen, dass Mule sehr spezielle Versionen der Abhängigkeiten benötigt, sonst stürzt die App ab. Dies macht den Prozess zum Erstellen der eingebetteten App extrem komplex. – spoonboy

+0

Sie haben Recht, es gibt viele andere Abhängigkeiten. Was ist mit der Verwendung von Maven Assembly Plugin, um einen Krieg zu erstellen, der alle Abhängigkeiten enthält? Oder eine Zip-Datei mit allen Abhängigkeiten in einem lib-Verzeichnis erstellen? –

+0

Das ist genau das, was ich suche. – spoonboy