Gradle Jetty Plugin Dateien sperren

8

Gibt es eine Möglichkeit, das durch jetty verursachte Problem der Dateisperrung vollständig von gradle zu lösen?

Einige Klarstellungen:
Wenn Sie das Gradle Jetty-Plugin verwenden, indem Sie gradle jettyRun, jetty ausführen, werden die statischen Ressourcendateien (html, css, js usw.), die bei Verwendung von Windows gesperrt werden. Sie können eine Beschreibung des Problems in Dateien, die unter Windows gesperrt sind , sehen.

Derselbe Artikel beschreibt auch, wie Sie das beheben können. Grundsätzlich müssen Sie entweder:

  1. Deaktivieren Sie die Verwendung von file mapped buffer
  2. Benutze NIO überhaupt nicht.

Beide Dinge erfordern, dass einige antriebsspezifische Konfigurationsdateien zum Projekt hinzugefügt werden, was ich nicht tun möchte - das Anlegesteg-Plugin wird nur aus praktischen Gründen verwendet, und die Konfiguration ist nicht richtig.

Ich brauche NIO nicht zum Testen auf dem lokalen Rechner, daher funktioniert jede Lösung.

Bearbeiten:

Vorerst habe ich die Option ausgewählt, bei der Sie useFileMappedBuffer auf false setzen. So geht es:

  1. Geben Sie einen Pfad zu Ihrem webdefault.xml like

    an %Vor%
  2. Ermitteln Sie die Datei von der neuesten 6.1y-Verteilung der Anlegestelle. Das Plugin scheint nur Anlegesteg 6 zu unterstützen. Sie können es bei jetty-6.1.26\etc\webdefault.xml lokalisieren. Offensichtlich müssen Sie es an dem im vorherigen Schritt angegebenen Pfad platzieren.

  3. Ändern Sie den Standard-Servlet-Initialisierungsparameter useFileMappedBuffer in false

Ich werde die Option der Verwendung von eingebetteten Anlegestellen anstelle des Plugins untersuchen.

    
jmruc 14.06.2012, 11:42
quelle

2 Antworten

1

Kiril beantwortete seine eigene Frage, vielen Dank. Sie sollten den Anweisungen von Kiril folgen, damit Sie die passende webdefault.xml finden können.

Um herauszufinden, welche Version von Jetty von Gradle gestartet wird, führen Sie

aus %Vor%

Und Sie werden so etwas sehen:

%Vor%

Ich habe eine Weile gebraucht, um eine Kopie von Jetty 6.1.25 zu finden, da sie nicht mehr auf der Jetty-Download-Seite aufgeführt ist (nicht einmal im Archiv-Bereich!).

Sie können dann die entsprechende Kopie von webdefault.xml von hier abholen und die Versionsnummer Ihren Bedürfnissen entsprechend anpassen:

Ссылка

    
vegemite4me 26.09.2013, 15:54
quelle
3

Ich habe ein Plugin gefunden, das eine bessere Alternative zu sein scheint:

Ссылка

Positive

  • Ihre Dateien werden nicht gesperrt und Hot-Deployment unterstützt (auch nicht Gretty Rufen Sie " schnell neu laden ")
  • auf
  • Gretty 1.2.0 benutzt Jetty 9.2.9.v20150224. Jetty Plugin von Gradle 2.2.1 verwendet Jetty 6.1.25.
  • die gleiche Aufgabe wird verwendet jettyRun (oder einfacher run ).
  • "Drücken Sie eine beliebige Taste, um den Server zu stoppen". Jetty-Plugin benötigt STRG + C dann Y.
  • Nach allem, was ich sagen kann, scheint die Dokumentation großartig zu sein (Gradle nicht so sehr

Negative

  • Ein bisschen mehr aufgeblähter Code, um die Klassenpfadabhängigkeit des Buildskripts einzurichten oder das Plug-in direkt aus der URL anzuwenden ( siehe doc )
  • Gretty stürzt ab, wenn Sie nicht ausdrücklich apply plugin: 'war' (Jetty-Plugin erweitert das War-Plugin)
Martin Andersson 27.03.2015 16:22
quelle

Tags und Links