Ich schreibe ein Kotlin/JVM-Gradle-Plugin, das Daten in einem Anwendungs-Cache-Verzeichnis speichert, sodass die Daten über separate Projekte weitergegeben werden können. Ich muss sicherstellen, dass die Inhalte nicht modifiziert werden, während sie verwendet werden. Ich implementiere im Grunde genommen einen benutzerdefinierten Toolchain -Manager. Ich brauche nur ein Tool, um intern zu verwenden. Ich möchte einen gleichzeitigen schreibgeschützten Zugriff zulassen. Die Modifikation kann als Teil einer Aufgabe oder während einer Konfigurationsphasen-Setup-Aktion durchgeführt werden. Schreibgeschützte Schlösser sollten priorisiert werden. Dies ist jedoch nicht streng notwendig. java.nio.channels.filelock , die die Cross-Process-Verriegelung unterstützt. Es unterstützt jedoch nicht die Verriegelung innerhalb desselben JVM -Prozesses. Siehe Filelock Javadoc: < /p>
Dateisperrs werden im Auftrag der gesamten Java -Virtual Machine gehalten. Sie sind nicht geeignet, um den Zugriff auf eine Datei durch mehrere Threads in derselben virtuellen Maschine zu steuern. Geeignet. Schlösser müssen während der Konfigurationsphase und auch in völlig unterschiedlichen Gradle-Builds (z. B. mehrere unabhängige Builds auf CI ausgeführt) erhältlich sein. Ich kann es jedoch nicht verwenden, weil es intern ist. Wenn es eine C -Bibliothek gab, könnte ich vielleicht damit interopieren. Gleichzeitige Leser. /> < /li>
[*] Kotlin /JVM mit Java 17. < /li>
funktioniert zuverlässig auf Linux, MacOS und Windows (muss aber nur an einer Maschine funktionieren, wobei gleichzeitig keine Vernetzung verwendet werden kann. Erforderlich, aber wenn dies der Fall ist, sollten sie leicht sein können (um die Verschmutzung des Gradle Buildscript -Klassenpfads zu vermeiden).
Dateibasierte Sperre zur Steuerung der schreibgeschützten oder readschreiberen Zugriff auf eine Datei oder ein Verzeichn ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post