Frage

Das hat mich jetzt seit Jahren nervt, und ich dachte, einen von euch fein Leute wissen würden - in Eclipse .classpath Dateien, was ist das combineaccessrules Attribut des classpathentry Elements für tatsächlich verwendet?

kann ich in der Java sehe Config Dialog bauen, dass es maniuplated werden kann, aber ich kann von einem guten Anwendungsfall für sie nicht denken. Wenn ich mit den Einstellungen verarschen, oder die .classpath Datei manuell ändern, es scheint keine Wirkung zu haben.

Ich bin der Hoffnung, jemand anderes es für einen guten Zweck hat, und ich kann ihre Ideen stehlen. Im Grunde ist es ein Jucken ich zu kratzen versuchen.

War es hilfreich?

Lösung

Mit dem richtigen Verwendung von Zugriffsregeln können Sie verhindern „interne“ und / oder „Nicht-api“ Klassen und Methoden. Wenn Sie eine Klasse oder ein Paket hinzufügen, wie Verbotene oder Entmutigt die Compiler zeigen einen Fehler oder eine Warnung, wenn Sie die Klasse oder die Klasse aus dem angegebenen Paket verwenden. Für eine längere Einführung von Zugangsregeln sollten Sie diesem kurzen Artikel .

Für die Verwendung von Zugriffsregeln stellen Sie sich die folgende Situation kombinieren:

  • Sie haben zwei Projekte, A und B.
  • Auf dem Classpath des Projekts A gibt es eine JAR-Datei, die exportiert wird. Das Glas enthält einige "stabil api", "instabile api" und "Nicht-api" public-Klassen.
  • Projekt B ist abhängig von Projekt A.

Sie erlauben keine "nicht-api" Klassen in Projekt A mit, so dass Sie einige Verbotene Zugriffsregeln auf diesen Klassen / Pakete festgelegt.

Im Projekt B Sie nicht zulassen, „non-api“ auch verwenden, aber Sie möchten eine Warnung erhalten, wenn „instabil api“ verwenden. In diesem Fall wird in Projekt B müssen Sie nur die zusätzliche auf Entmutigt Zugriffsregeln, wenn Sie überprüfen Sie die Kombinieren Sie Regeln mit den Regeln für den Zugang der exportierten Projekteinträge .

Andere Tipps

Zugriffsregeln sind praktische kleine Dinge, aber gefährlich. Sie schließen eine Quelldatei aus dem Projekt-Compiler, aber lassen Sie die Datei intakt im Dateisystem.

Das Projekt arbeite ich an hat eine Bootstrap-Klasse in einem unserem Quellordner, aber wenn wir die gesamten Ordner das Projekt Classpath enthalten wird es nicht kompilieren (es ist eine lange Geschichte und der Build-Prozess behandelt dies).

So verwenden wir eine Sonnenfinsternis Zugriffsregel es auszuschließen, und es stört uns nie während der Entwicklung. Dies bedeutet, dass wir nicht einfach den Code ändern können, aber es ist einer dieser Klassen, die buchstäblich seit Jahren nicht mehr berühren.

Zugriffsregeln kombinieren, durch die JavaDoc zu urteilen, ist eine echte Kante Anwendungsfall. Um es nutzen Sie müßten haben:

  • eine Zugriffsregel in einem exportierten Quelleintrag eines Projektes
  • eine Verbindung zu diesem Projekt von einem übergeordneten Projekt
  • eine Notwendigkeit, die Regeln für den Zugang des Teilprojektes mit dem Elternteil zu kombinieren

Ich kann nicht wirklich sagen, wie es sinnvoll wäre, aber ich hoffe, dass zumindest beantwortet Ihre „was ist es“ Frage:)

Obwohl ich nie es selbst verwendet wird, ein wenig in kann hier .

  

, ob die Zugriffsregeln des exportierten Einträge des Projektes sollten mit dieser Eintragung der Zugriffsregeln kombiniert werden

die Zugriffsregeln wären so etwas wie wie "com / Tests / **"

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top