Ich war in Schwierigkeiten, weil ich nicht dachte, dass es ein Plug-In gibt, wenn es so berühmt ist wie ESLint, also habe ich es gelöst. Ich möchte Node aufgrund von Versionsproblemen nicht selbst installieren. Wenn ich also Maven in einem Java-Projekt verwende, habe ich mir überlegt, wie ein Plug installiert werden soll. Es sieht also wie in diesem Artikel aus.
Adopt Open JDK Hotspot 11.0.3 Maven 3.6.0
Ich werde es hier weglassen. Jedes Maven-Projekt ist in Ordnung.
Es wird "npm install" in Maven sein, also erst erstellen.
package.json
{
"dependencies": {},
"devDependencies": {
"eslint": "^6.5.1"
}
}
Derzeit sieht es zumindest so aus. Da es viele Releases gibt, lesen Sie bitte die entsprechende Version.
Da es mit einem Plugin namens "Frontend-Maven-Plugin" installiert werden kann, werden wir es zuerst einstellen. Grundsätzlich können Sie es als offiziell festlegen.
pom.xml
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.8.0</version>
<configuration>
<nodeVersion>v10.16.3</nodeVersion>
</configuration>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<phase>generate-resources</phase>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
</executions>
</plugin>
./mvnw generate-resources
erstellt knotenbezogene Dateien.
Wenn Sie keine Datei zum Ausführen von ESlint haben, müssen Sie diese hier initialisieren. Beachten Sie jedoch, dass sich die ausführbare Datei des Knotens im Ordner "node" des Projektstamms befindet, sodass Sie sie Ihrem PATH hinzufügen müssen.
export PATH=node/:$PATH
Alles was Sie tun müssen, ist es auszuführen und einzurichten. Ich habe darüber nachgedacht, es zuerst über Gitbash unter Windows einzustellen, aber es hat nicht funktioniert, daher empfehle ich, es nur hier auf einem Mac zu machen.
node_modules/.bin/eslint --init
Da ich in der Geschichte des in Eclipse entwickelten Projekts dieselbe Regel auf der Eclipse-Seite festlegen möchte, habe ich die ausgeblendete Init-Datei durch einen symbolischen Link getrennt. Es scheint, dass Sie Tern nur für Eclipse verwenden können, aber es ist ein wenig praktisch, da Sie dieselben Regeln befolgen können.
Es macht mich traurig, Javascript mit Eclipse zu entwickeln, daher möchte ich VSCode auch dann verwenden, wenn ich mit Javascript spiele, aber dieses Mal kann ich die gesamte Entwicklung auf Eclipse durchführen, um das Projekt zu vereinfachen. Wir müssen dies tun, also setzen wir solche Maßnahmen um.
Jetzt, da wir fertig sind, werden wir pom.xml erneut optimieren, damit ESLint von Maven aus ausgeführt werden kann. Dies geschieht mit dem Exec-Maven-Plugin. Ich wünschte, ich könnte es mit dem Frontend-Maven-Plugin machen, aber es hat nicht funktioniert, also versuche ich, ein anderes Plug-In zu verwenden.
Hier besteht die Einstellung darin, eslint_exec.sh über den Befehl bash aufzurufen.
pom.xml
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<phase>verify</phase>
<id>exec-eslint</id>
<configuration>
<executable>bash</executable>
<arguments>
<argument>eslint_exec.sh</argument>
</arguments>
</configuration>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
</plugin>
Der Inhalt von eslint_exec.sh sieht folgendermaßen aus. Das Festlegen des untergeordneten Knotens in PATH ist schwierig, wenn er in verschiedenen Umgebungen festgelegt wird. Daher habe ich beschlossen, ihn in dieser Umgebung auszuführen. Der Rest läuft nur mit ESLint. Ich habe "exit 0" gesetzt, weil ich keinen Fehler machen wollte, auch wenn ich beim Laufen mit Jenkins in der Prüfung erwischt wurde.
eslint_exec.sh
export PATH=node/:$PATH
node_modules/.bin/eslint src/main/resources/static/js/*/**
exit 0
Da die Überprüfung diesmal das tut, was Sie möchten, legen Sie die Zieleinstellung für die Überprüfung fest.
./mvnw verify
Ich denke nicht, dass es in diesem Zeitalter möglich ist, Javascript zu entwickeln, deshalb dachte ich, es wäre besser gewesen, sich einen Weg auszudenken, um es insgesamt etwas einfacher zu erstellen.
Recommended Posts