Ich möchte eine Entwicklungsumgebung vorbereiten, damit ich Java-Webanwendungen mit VS Code entwickeln kann. Ich möchte das aus VS Code entwickelte kompilieren und ausführen. Ich möchte auch debuggen. Ich möchte auch testen. Ich habe verschiedene Dinge recherchiert und es schwer gehabt, weil ich ein Anfänger in allem bin, was ich benutze. Ich habe es geschafft, die ausführbare Umgebung zu vervollständigen, daher werde ich sie zusammenfassen. Ich hoffe es hilft jedem, der etwas Ähnliches machen will.
Obwohl in diesem Artikel nicht vorgestellt, können Sie auch mit Tomcat debuggen.
・ MacOS Catalina 10.15.2 -Visual Studio Code 1.41.1 -AdoptOpenJDK 1.8.0_232 ・ Maven 3.6.3 ・ Tomcat 9.0.30
Ich habe JDK 1.8.0_221 von Oracle verwendet. Ich habe OpenJDK 1.8.0_232 installiert, das von Adopt zu diesem Zeitpunkt bereitgestellt wurde. Übergeben Sie also zuerst den Pfad, um es zu verwenden.
Terminal
$ open ~/.bash_profile
Öffnen Sie .bash_profile
, das die Umgebungsvariablen beschreibt.
.bash_profile
export PATH=$PATH:/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin
export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
Beschreiben und speichern Sie die Einstellungen PATH und JAVA_HOME.
Terminal
$ source ~/.bash_profile
Reflektieren Sie die Änderungen in .bash_profile
.
Terminal
$ javac -version
$ java -version
Überprüfen Sie nach dem Neustart des Terminals, ob die Einstellungen wiedergegeben werden. ... ich denke es ist OK wenn das set jdk angezeigt wird.
Entpacken Sie die komprimierte Datei, die von der unten stehenden URL heruntergeladen wurde, und platzieren Sie sie an einem beliebigen Ort. Ich habe es unter Anwendungen. http://tomcat.apache.org/
Entpacken Sie die komprimierte Datei, die von der unten stehenden URL heruntergeladen wurde, und platzieren Sie sie an einem beliebigen Ort. Ich habe es unter Anwendungen. https://maven.apache.org/download.cgi
■ Java Extension Pack (Die folgenden Erweiterungen sind zusammengefasst) ・ Sprachunterstützung für Java ™ von Red Hat ・ Debugger für Java ・ Java Test Runner ・ Maven für Java ・ Java Dependency Viewer ・ Visual Studio IntelliCode ■Tomcat For Java ■ Generator-Junit-Datei (Ich habe sie eingefügt, weil ich eine Junit-Datei mit einem Klick erstellen wollte.)
Stellen Sie VS Code für die Verwendung von Java ein. Drücken Sie F1 und geben Sie es wie im Bild gezeigt in das Suchfeld ein.
Wählen Sie "Benutzereinstellung" in java.home Wählen Sie in settings.json die Option Bearbeiten Schreiben Sie den Speicherort von JAVA_HOME nach "java.home": "und starten Sie VS Code neuTerminal
$ mkdir MavenProject
$ cd MavenProject
$ mvn archetype:generate
Erstellen Sie einen Ordner zum Erstellen einer Anwendung Wechseln Sie in den erstellten Ordner Befehl zum Erstellen eines Maven-Projekts
Terminal
...........Kürzung
2545: remote -> us.fatehi:schemacrawler-archetype-maven-project (-)
2546: remote -> us.fatehi:schemacrawler-archetype-plugin-command (-)
2547: remote -> us.fatehi:schemacrawler-archetype-plugin-dbconnector (-)
2548: remote -> us.fatehi:schemacrawler-archetype-plugin-lint (-)
2549: remote -> ws.osiris:osiris-archetype (Maven Archetype for Osiris)
2550: remote -> xyz.luan.generator:xyz-gae-generator (-)
2551: remote -> xyz.luan.generator:xyz-generator (-)
2552: remote -> za.co.absa.hyperdrive:component-archetype (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 1467:
Geben Sie struts2 ein
Terminal
...........Kürzung
: Choose archetype:
1: remote -> br.com.address.archetypes:struts2-archetype (an archetype web 3.0 + struts2 (bootstrap + jquery) + JPA 2.1 with struts2 login system)
2: remote -> br.com.address.archetypes:struts2-base-archetype (An Archetype with JPA 2.1; Struts2 core 2.3.28.1; Jquery struts plugin; Struts BootStrap plugin; json Struts plugin; Login System using Session and Interceptor)
3: remote -> com.amazonaws.serverless.archetypes:aws-serverless-struts2-archetype (-)
4: remote -> com.jgeppert.struts2.jquery:struts2-jquery-archetype-base (This Archetype provides a Webapp Configuration ready for the Struts2 jQuery Plugin.)
5: remote -> com.jgeppert.struts2.jquery:struts2-jquery-archetype-mobile (This Archetype provides a Webapp Configuration ready for the Struts2 jQuery Mobile Plugin.)
6: remote -> com.jgeppert.struts2.jquery:struts2-jquery-bootstrap-archetype-grid (This Archetype provides a Webapp Configuration ready for the Struts2 jQuery Grid Plugin and the Struts2
Bootstrap Plugin.)
7: remote -> org.apache.struts:struts2-archetype-angularjs (-)
8: remote -> org.apache.struts:struts2-archetype-blank (-)
9: remote -> org.apache.struts:struts2-archetype-convention (-)
10: remote -> org.apache.struts:struts2-archetype-dbportlet (-)
11: remote -> org.apache.struts:struts2-archetype-plugin (-)
12: remote -> org.apache.struts:struts2-archetype-portlet (-)
13: remote -> org.apache.struts:struts2-archetype-starter (-)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): :8
Geben Sie 8 ein, um einzugeben
Terminal
Choose org.apache.struts:struts2-archetype-blank version:
1: 2.2.1
2: 2.2.1.1
3: 2.2.3
4: 2.2.3.1
5: 2.3.3
6: 2.3.4
7: 2.3.4.1
8: 2.3.7
9: 2.3.8
10: 2.3.12
11: 2.3.14
12: 2.3.14.1
13: 2.3.14.2
14: 2.3.14.3
15: 2.3.15
16: 2.3.15.1
17: 2.3.15.2
18: 2.3.15.3
19: 2.3.16
20: 2.3.16.1
21: 2.3.16.2
22: 2.3.16.3
23: 2.3.20
24: 2.3.20.1
25: 2.3.20.3
26: 2.3.24
27: 2.3.24.1
28: 2.3.24.3
29: 2.3.28
30: 2.3.28.1
31: 2.3.29
32: 2.3.30
33: 2.3.31
34: 2.3.32
35: 2.3.33
36: 2.3.34
37: 2.3.35
38: 2.3.36
39: 2.3.37
40: 2.5-BETA1
41: 2.5-BETA2
42: 2.5-BETA3
43: 2.5
44: 2.5.1
45: 2.5.2
46: 2.5.5
47: 2.5.14
Choose a number: 47:39
Geben Sie die Versionsnummer struts2 ein und drücken Sie die EINGABETASTE
Terminal
Define value for property 'groupId': Hello
Define value for property 'artifactId': exsample
Define value for property 'version' 1.0-SNAPSHOT: :
Define value for property 'package' Hello: :
Confirm properties configuration:
groupId: Hello
artifactId: exsample
version: 1.0-SNAPSHOT
package: Hello
Y: :
groupId ... Geben Sie den Namen eines Java-Pakets an. artefaktId ... Geben Sie den Projektnamen beliebig an. Version ... wie es ENTER ist Paket ... wie es ENTER ist Y :: ... ENTER wie es ist
Terminal
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: struts2-archetype-blank:2.3.37
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: Hello
[INFO] Parameter: artifactId, Value: exsample
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: Hello
[INFO] Parameter: packageInPathFormat, Value: Hello
[INFO] Parameter: package, Value: Hello
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: groupId, Value: Hello
[INFO] Parameter: artifactId, Value: exsample
[INFO] Project created from Archetype in dir: /MavenProject/exsample
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12:24 min
[INFO] Finished at: 2020-01-13T18:54:18+09:00
[INFO] ------------------------------------------------------------------------
Erstellung des Maven-Projekts abgeschlossen
MavenProject/
└── exsample
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── Hello
│ │ └── example
│ │ ├── ExampleSupport.java
│ │ ├── HelloWorld.java
│ │ └── Login.java
│ ├── resources
│ │ ├── Hello
│ │ │ └── example
│ │ │ ├── Login-validation.xml
│ │ │ ├── package.properties
│ │ │ └── package_es.properties
│ │ ├── example.xml
│ │ ├── log4j2.xml
│ │ └── struts.xml
│ └── webapp
│ ├── WEB-INF
│ │ ├── example
│ │ │ ├── HelloWorld.jsp
│ │ │ ├── Login.jsp
│ │ │ ├── Menu.jsp
│ │ │ ├── Missing.jsp
│ │ │ ├── Register.jsp
│ │ │ └── Welcome.jsp
│ │ └── web.xml
│ └── index.html
└── test
└── java
└── Hello
└── example
├── ConfigTest.java
├── HelloWorldTest.java
└── LoginTest.java
Selbst wenn Sie es so erstellen und ausführen, wie es ist, wird die standardmäßig vorbereitete Seite angezeigt. Dieses Mal erstellen wir jedoch eine einfache Hello World-Anwendung mit struts2.
Hinzugefügt.
Ändern Sie den Inhalt des Projekts in eine einfache Hello World-Anzeigeanwendung.
Projektstruktur
MavenProject
└── exsample
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── Hello
│ │ └── example
│ │ └── HelloStrutsAction.java
│ ├── resources
│ │ └── struts.xml
│ └── webapp
│ ├── WEB-INF
│ │ └── web.xml
│ ├── hello.jsp
│ └── index.jsp
└── test
└── java
└── Hello
└── example
HelloStrutsAction.java
package Hello.example;
import com.opensymphony.xwork2.ActionSupport;
public class HelloStrutsAction extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
public String execute() {
return SUCCESS;
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name = "struts.devMode" value = "true"/>
<package name = "Hello.example" extends = "struts-default">
<action name = "HelloStrutsAction" class = "Hello.example.HelloStrutsAction" method = "execute">
<result name = "success">hello.jsp</result>
</action>
</package>
</struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>WebProj</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix = "s" uri = "/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HelloStruts</title>
</head>
<body>
<h2>HelloStruts2!</h2>
</body>
</html>
index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix = "s" uri = "/struts-tags" %>
<!DOCTYPE html>
<html>
<head>
<meta charset = "UTF-8">
<title>INDEX</title>
</head>
<body>
<s:form action = "HelloStrutsAction">
<s:submit value = "HelloStruts"/>
</s:form>
</body>
</html>
In Maven werden die Definitionsinformationen des Projekts in die Einstellungsdatei pom.xlm geschrieben. Ändern Sie die Einstellungen ein wenig.
pom.xlm
···············Kürzung
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<encoding>UTF-8</encoding>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
···············Kürzung
Standardmäßig ist das verwendete JDK auf jdk1.5 eingestellt.
pom.xlm
···············Kürzung
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
···············Kürzung
Dieses Mal werde ich es ändern, um jdk1.8 zu verwenden.
pom.xlm
···············Kürzung
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
···············Kürzung
Sie brauchen es diesmal nicht, aber schreiben Sie es so, um andere Plugins wie MySQL einzuschließen.
MavenProjct
└── exsample
├── pom.xml
├── src
│ ├── main
│ │ ├── java
│ │ │ └── Hello
│ │ │ └── example
│ │ │ └── HelloStrutsAction.java
│ │ ├── resources
│ │ │ ├── log4j2.xml
│ │ │ └── struts.xml
│ │ └── webapp
│ │ ├── WEB-INF
│ │ │ └── web.xml
│ │ ├── hello.jsp
│ │ └── index.jsp
│ └── test
│ └── java
│ └── Hello
│ └── example
└── target
├── classes
│ ├── Hello
│ │ └── example
│ │ └── HelloStrutsAction.class
│ ├── log4j2.xml
│ └── struts.xml
├── exsample-1.0-SNAPSHOT
│ ├── META-INF
│ ├── WEB-INF
│ │ ├── classes
│ │ │ ├── Hello
│ │ │ │ └── example
│ │ │ │ └── HelloStrutsAction.class
│ │ │ └── struts.xml
│ │ ├── lib
│ │ │ ├── asm-3.3.jar
│ │ │ ├── asm-commons-3.3.jar
│ │ │ ├── asm-tree-3.3.jar
│ │ │ ├── commons-fileupload-1.4.jar
│ │ │ ├── commons-io-2.2.jar
│ │ │ ├── commons-lang3-3.2.jar
│ │ │ ├── freemarker-2.3.28.jar
│ │ │ ├── javassist-3.11.0.GA.jar
│ │ │ ├── log4j-api-2.3.jar
│ │ │ ├── log4j-core-2.3.jar
│ │ │ ├── ognl-3.0.21.jar
│ │ │ ├── struts2-config-browser-plugin-2.3.37.jar
│ │ │ ├── struts2-core-2.3.37.jar
│ │ │ └── xwork-core-2.3.37.jar
│ │ └── web.xml
│ ├── hello.jsp
│ └── index.jsp
├── exsample-1.0-SNAPSHOT.war
├── generated-sources
│ └── annotations
├── maven-archiver
│ └── pom.properties
└── maven-status
└── maven-compiler-plugin
├── compile
│ └── default-compile
│ ├── createdFiles.lst
│ └── inputFiles.lst
└── testCompile
└── default-testCompile
└── inputFiles.lst
Wenn alles erledigt ist, ändert sich die obige Projektstruktur.
Klicken Sie mit der rechten Maustaste auf Tomcat und wählen Sie "Im Browser öffnen", um den folgenden Bildschirm im Browser zu öffnen.
Klicken Sie auf den Projektnamen.
index.jsp wird angezeigt! Klicken Sie auf die Schaltfläche "Hello Struts" ...
Sie sind zu hello.jsp übergegangen!
Recommended Posts