[JAVA] Ich möchte ESLint im Maven-Projekt. Ich möchte Node.js ausführen, ohne es in meine Umgebung zu stellen.

Einführung

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.

Umgebung

Adopt Open JDK Hotspot 11.0.3 Maven 3.6.0

Projekterstellung

Ich werde es hier weglassen. Jedes Maven-Projekt ist in Ordnung.

Package.json erstellen

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.

Lassen Sie uns den Knoten an die erste Stelle setzen

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>

Beginnen Sie vorerst

./mvnw generate-resources erstellt knotenbezogene Dateien.

Eslint initialisieren (überspringen, wenn Sie die erforderlichen Dateien haben)

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

Eslint.json erstellen

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.

ESLint-Ausführungseinstellungen

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

Führen Sie ESLint aus

Da die Überprüfung diesmal das tut, was Sie möchten, legen Sie die Zieleinstellung für die Überprüfung fest.

./mvnw verify

abschließend

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

Ich möchte ESLint im Maven-Projekt. Ich möchte Node.js ausführen, ohne es in meine Umgebung zu stellen.
Mein Memorandum, dass ich ValidationMessages.properties UTF8 in Spring Boot erstellen möchte
[Java Spring MVC] Ich möchte DI in meiner eigenen Klasse verwenden
Ich möchte @Autowired in Servlet verwenden
R von Java ausführen Ich möchte rJava ausführen
Ich möchte eine E-Mail in Java senden.
Führen Sie JUnit und Spock in einem Maven-Projekt aus
Ich habe einen Docker-Container erstellt, um Maven auszuführen
rsync4j - Ich möchte rsync in Java berühren.
Ich möchte irgendwann sogar in Kotlin sein
Ich möchte den Wert in Ruby erhalten
Ich möchte das in der Datenbank gespeicherte Protokoll morphologisch analysieren und in der Datenbank speichern, um Nachrichten 1 zu klassifizieren
[Rails] So löschen Sie MySQL-Daten aus der Produktionsumgebung, nachdem Sie sie in die Entwicklungsumgebung gestellt haben
Docker-Befehl zum Erstellen eines Rails-Projekts in einem einzigen Schlag in einer Umgebung ohne Ruby
Erstes AWS Lambda (Ich habe versucht zu sehen, in welcher Umgebung es funktioniert)
Ich möchte Combine auch in UIKit verwenden.
Ich möchte die praktischen Funktionen von Clojure in Kotlin nutzen
Ich möchte so etwas wie "cls" in Java machen
Ich möchte NetBeans auf einem Mac verwenden → Ich kann es verwenden!
Ich möchte eine TraceId in das Protokoll einbetten
Ich möchte auch in Laradock Fischschalen verwenden! !!
Ich möchte ES2015 auch in Java verwenden! → (´ ・ ω ・ `)
Ich möchte ein kleines Symbol in Rails verwenden
Ich möchte eine Funktion in der Rails Console definieren
[Android Studio] Ich möchte eine Maven-Bibliothek unter Android verwenden
Ich möchte Schlangenfälle mit Tabellendefinitionen stoppen
Ich möchte in RSpec auf einen GoogleMap-Pin klicken
Ich habe Squid unter CentOS in meiner lokalen Umgebung installiert
Nachdem ich einen Artikel mit Rails Simple Calendar veröffentlicht habe, möchte ich ihn im Kalender wiedergeben.
Ich möchte den Inhalt von Assets in der mit capistrano erstellten Umgebung von Grund auf neu erstellen