Ich bin neu zu ANTLR4, und es scheint, dass es kein Eclipse-Plug-In für v4 gibt. Es wäre also nett, automatisch die Java-Quellen aus den .g4-Grammatiken zu erstellen. Ich habe ein einfaches, leeres Maven-Projekt mit src/main/java, src/test/java. Wo legen Sie die .g4-Dateien ab? Wie kann ich die Grammatiken mit Maven automatisch erstellen?Wie automatisch lexer + Parser mit ANTLR4 und Maven generieren?
Mein eigener POM-Test nicht bestanden:
<repository>
<id>mvn-public</id>
<name>MVNRepository</name>
<url>http://mvnrepository.com</url>
</repository>
...
<build>
<plugins>
<plugin>
<groupId>org.antlr</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<version>4.0.0</version>
<executions>
<execution>
<goals>
<goal>antlr</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Eklipse sagt:
Failure to find org.antlr:antlr4-maven-plugin:pom:4.0.0 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of
central has elapsed or updates are forced
Thank you! Wenn ich das build-helper-maven-Plugin in pom.xml kommentiere, erstellt ANTLR den Lexer und Parser für die platzierte Grammatik. Aber mit build-helper-maven-plugin sagt Eclipse: "Plugin-Ausführung nicht durch Lebenszyklus-Konfiguration abgedeckt: org.codehaus.mojo: build-helper-maven-plugin: 1.7: add-source (Ausführung: default, phase: generate-sources) ". Ohne manuell/target/generations-sources/antlr4 als src-Ordner hinzuzufügen, kann ich den generierten Lexer/Parser nicht verwenden. Und eine andere Frage: Wie man Argumente legt? ' org.beispiel configuration>' funktioniert nicht. –
Vertex
Eclipse wird automatisch die richtige Erweiterung herunterladen, um mit dem Build-Helfer-Plugin zu arbeiten, wenn Sie es ihm mitteilen. Die Paketklausel wird vom Ziel "antlr4" automatisch basierend auf dem Speicherort der Datei ".g4" in Ihrer Quellstruktur automatisch hinzugefügt. Um das Paket des generierten Codes zu ändern, verschieben Sie die Grammatik selbst in das gewünschte Paket in der Quellstruktur. –
Ja, du hast Recht! Ich habe die schnelle Lösung ignoriert. – Vertex