[JAVA] Wir werden eine Spring Framework-Entwicklungsumgebung in der lokalen Umgebung erstellen.

** Diese Seite ist unvollständig **: cold_sweat:

Einführung

Es geht darum, die Entwicklungsumgebung von Spring Framework, einem Java-basierten Anwendungsframework, in eine lokale Umgebung zu integrieren, die keine Verbindung zum Internet herstellen kann.

Die folgenden Themen werden ausführlich behandelt.

Das Befehlsbeispiel basiert auf Linux. Ersetzen Sie daher / im Pfadbegrenzer entsprechend Ihrer Umgebung.

Notwendiges Wissen usw.

Erstellen Sie einen Maven-Repository-Server

Sie können auch ein lokales Maven-Repository verteilen, das Spring Framework-abhängige Bibliotheken zwischenspeichert (z. B. das Verzeichnis .m2 in Ihrem Ausgangsverzeichnis). Ich möchte jedoch einen Maven-Repository-Server erstellen, um die Wartbarkeit zu gewährleisten.

Als Repository-Manager für Maven wird Nexus (Professional Edition von Sonatype ebenfalls offiziell verwendet. Repository), OSS Edition) scheint berühmt zu sein, aber angesichts der erforderlichen Ressourcen und der einfachen Konstruktion [Apache Archiva]( Ich möchte https://archiva.apache.org/) verwenden.

Erforderliche Umgebung

Artikel Erläuterung
JDK 1.8
Festplattenplatz Bei der Bereitstellung von Apache Archiva sind es ungefähr 80 MB, aber wenn das Repository tatsächlich zwischengespeichert wird, ist es besser, es in G-Bytes zu reservieren.
OS Linux、Mac OS、Solaris、Windows

Nachtrag 2020/5/1

In den folgenden Schritten heißt es: "In einer Umgebung bereitstellen, die eine Verbindung zum Internet herstellen kann." Verwenden Sie in einer Umgebung, die eine Verbindung zum Internet herstellen kann, Maven direkt ohne Apache Achiva und laden Sie es auf local ~ / .m2 herunter. Es wurde darauf hingewiesen, dass der Inhalt von ~ / .m2 / repository auf irgendeine Weise nach apache-archiva-2.2.4 / repositories / internal in der Zielumgebung kopiert werden sollte.

Laden Sie Apache Archiva herunter

Sie können es von https://archiva.apache.org/download.html herunterladen.

Sie können zwischen der eigenständigen Version (tar.gz oder zip) mit Tomcat und der WAR-Version wählen.

Wenn bereits ein Java-Anwendungsserver wie Tomcat ausgeführt wird, ist es anscheinend besser, die WAR-Version zu verwenden. Sie müssen jedoch eine Konfigurationsdatei erstellen und abhängige Bibliotheken bereitstellen. Weitere Informationen finden Sie unter den folgenden Links.

Hier haben wir uns für die eigenständige Version entschieden, die einfach zu erstellen ist.

Stellen Sie Apache Archiva bereit

Stellen Sie nicht nur in der lokalen Zielumgebung bereit, sondern auch in einer Umgebung, die eine Verbindung zum Internet herstellen kann, um den Inhalt des Repositorys in die Zielumgebung zu migrieren. Befolgen Sie die folgenden Schritte für jede Umgebung.

Entpacken Sie zunächst das Archiv. In Anbetracht der Tatsache, dass die Verzeichnishierarchie des Repositorys tief ist, ist es im Fall von Windows besser, sie auf eine möglichst flache Hierarchie zu erweitern, z. B. direkt unter dem Laufwerk.

Das folgende Beispiel zeigt das Entpacken der Zip-Version mit dem Befehl unzip. (Die Versionsnummer ist zum Zeitpunkt der Veröffentlichung.)

$ unzip apache-archiva-2.2.4-bin.zip

Starten Sie nach der Bereitstellung Apache Archiva.

$ cd apache-archiva-2.2.4/bin
$ ./archiva console

Bitte beziehen Sie sich auf das folgende Dokument, da die Methode zur Erstellung eines Dienstes je nach Umgebung unterschiedlich ist.

Es ist in Englisch, aber wenn Sie den Titel und das Ausführungsbeispiel des Befehls kennen, denke ich, dass es möglich sein wird.

Sobald Apache Archiva gestartet wurde, greifen Sie mit einem Webbrowser auf http: // localhost: 8080 / zu. Wenn der folgende Bildschirm angezeigt wird, ist er in Ordnung.

archiva.png

Erstellen eines Administratorbenutzers

Klicken Sie oben rechts auf der Apache Archiva-Weboberfläche auf die rote Schaltfläche "Administratorbenutzer erstellen". Ein Formular zum Erstellen eines Administratorbenutzers wird angezeigt. Geben Sie die folgenden erforderlichen Elemente ein.

--Passwort: Geben Sie das Passwort ein.

Klicken Sie auf die Schaltfläche "Speichern", wenn Sie fertig sind.

Informationen zum Ablaufdatum des Passworts

Standardmäßig ist das Ablaufdatum des Kennworts auf 90 Tage festgelegt. Wenn Sie diese Einstellung ändern möchten, gehen Sie wie folgt vor:

--Klicken Sie im Menü auf der linken Seite auf "Benutzer-Laufzeitkonfiguration" --Öffnen Sie die Registerkarte "Eigenschaften" --Öffnen Sie die dritte Seite mit Seitennavigation

Einstellungen zum Abrufen von Artefakten (Bibliothek) von Apache Archiva

Platzieren Sie eine Datei mit dem Namen settings.xml in einem Verzeichnis mit dem Namen .m2 in Ihrem Home-Verzeichnis mit den folgenden Inhalten. (Ändern Sie den localhost Teil in einen geeigneten Hostnamen.)

settings.xml


<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
	https://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository/>
  <interactiveMode/>
  <offline/>
  <pluginGroups/>
  <servers/>
  <mirrors>
    <mirror>
      <id>archiva.default</id>
      <url>http://localhost:8080/repository/internal/</url>
      <mirrorOf>external:*</mirrorOf>
    </mirror>
  </mirrors>
  <proxies/>
  <profiles/>
  <activeProfiles/>
</settings>

Standardmäßig ist Maven Central nur als Remote-Repository festgelegt. Wenn Sie auch andere Repositorys verwenden möchten, klicken Sie auf die folgenden Links.

Holen Sie sich die erforderlichen Artefakte (Bibliothek)

Verwenden Sie in einer Umgebung mit einer Internetverbindung den Befehl mvn wie im Maven-Projekt üblich. Führen Sie das Ziel oder die Phase aus, die Sie normalerweise verwenden. (Für Spring Boot-Projekte können Sie das mitgelieferte mvnw verwenden.)

$ ./mvn spring-boot:run
$ mvn clean
$ mvn package
$ mvn test

Stellen Sie sicher, dass es vom oben genannten Host-Set heruntergeladen wurde.

Die Spring Tool Suite (Spring Tools für Eclipse) verwendet ebenfalls die oben genannten Einstellungen.

Kopieren Sie das Repository in die Zielumgebung und aktualisieren Sie den Index

apache-archiva-2.2.4 / repositories / internal Kopieren Sie Folgendes auf irgendeine Weise nach apache-archiva-2.2.4 / repositories / internal in der Zielumgebung.

Melden Sie sich bei der Apache Archiva-Weboberfläche an, wählen Sie "Repositorys" aus dem Menü auf der linken Seite und "Verzeichnisse scannen" aus der Dropdown-Liste "Aktion".

dir_scan.png

Es wird eine Weile dauern, also wählen Sie nach einer Weile "Durchsuchen" aus dem Menü auf der linken Seite und prüfen Sie, ob das kopierte Verzeichnis usw. angezeigt wird.


Erstellen Sie einen Spiegel für Spring Initializr

Erstellen Sie einen Spiegel des Spring Initializr, der eine Vorlage für die Spring Boot-Anwendung generieren kann.

Wenn Sie pom.xml selbst schreiben oder die erforderliche Dateistruktur kennen, benötigen Sie diese wahrscheinlich nicht, aber Spring Boot ist halbiert (überbewertet?) Und Spring Tool Suite (Spring Tools für Eclipse). Wir werden es unter Berücksichtigung der Affinität zu bauen.

: Warnung: Die folgenden Arbeiten werden in einer Umgebung ausgeführt, in der Sie eine Verbindung zum Internet herstellen können, sofern nicht anders angegeben. Wenn die oben genannten Einstellungen über Apache Archiva vorgenommen werden, können die erforderlichen Bibliotheken nicht abgerufen werden. Brechen Sie die Einstellungen daher einmal ab. (Client-Seite)

: notebook_with_decorative_cover: Ich habe an CentOS 8.1 auf einer virtuellen Box mit einer 20-GB-Festplatte gearbeitet, aber während ich verschiedene Dinge ausprobiert habe, habe ich mit viel / tmp-Nutzung und einem Build-Fehler experimentiert. tat. Reinigen Sie das Innere von / tmp entsprechend.

Klone start.spring.io

Die Spring Initializr-Quelle (https://github.com/spring-io/start.spring.io) wird auf GitHub verwaltet. Klonen Sie wie folgt.

$ git clone https://github.com/spring-io/start.spring.io.git

Änderung von application.yml (BootVersions am 30.05.2020 behoben)

Wenn Sie das geklonte Projekt so verpacken, wie es ist, unterscheidet sich die Version von Spring Boot, die beim Booten in einer Umgebung, in der Sie keine Verbindung zum Internet herstellen können, wie folgt ausgewählt werden kann, von der ursprünglichen. (Da die Metadaten nicht von https://spring.io/project_metadata/spring-boot abgerufen werden können.)

no_internet.png

Ändern Sie den Abschnitt bootVersions von start.spring.io/start-site/src/main/resources/application.yml. In meinem Fall benötige ich die SNAPSHOT-Version nicht, daher habe ich sie wie folgt geändert.

index 25dc9cb..2cd2e56 100644
--- a/start-site/src/main/resources/application.yml
+++ b/start-site/src/main/resources/application.yml
@@ -1431,12 +1432,17 @@ initializr:
       id: groovy
       default: false
   bootVersions:
-    - name : Latest SNAPSHOT
-      id: 2.2.0.BUILD-SNAPSHOT
-      default: false
-    - name : 2.1.1.
-      id: 2.1.1.RELEASE
+    - name : 2.3.0
+      id: 2.3.0.RELEASE
       default: true
+    - name : 2.2.7
+      id: 2.2.7.RELEASE
+      default: false
+    - name : 2.1.14
+      id: 2.1.14.RELEASE
+      default: false
 
 ---
 

: warning: Es ist notwendig, das Problem zu beheben, damit es definitiv einen "Standard: true" gibt. Wenn alle falsch sind, wird der Bildschirm für einen Moment angezeigt und ist dann leer. (Erfahrene sprechen): Warnung:

Sie können auch den Standardwert von "Group", "com.example", in "jp.co.example" ändern, indem Sie den Abschnitt "group-id" nach dem Abschnitt "bootVersions" wie unten gezeigt hinzufügen. ..

  group-id:
    value: jp.co.example

: warning: Ordnen Sie den Einzug "bootVersions" zu. : Warnung:

Nachtrag 2020/05/29: Gehen Sie nicht zur ursprünglichen Site, um Metadaten abzurufen

Es wird nur in [Altes Referenzhandbuch] beschrieben (https://docs.spring.io/initializr/docs/0.3.x-SNAPSHOT/reference/htmlsingle/#_env_section), aber initializr.env.springBootMetadataUrl ist leer oder Wenn es null ist, wird nicht versucht, die Metadaten zu Hause abzurufen.

--- a/start-site/src/main/resources/application.yml
+++ b/start-site/src/main/resources/application.yml
@@ -24,6 +24,7 @@ spring:
 
 initializr:
   env:
+    springBootMetadataUrl: ""
     boms:
       azure:
         groupId: com.microsoft.azure

Referenz

You can set initializr.env.springBootMetadataUrl to empty (or null), or to a location that you know will resolve correctly.

	@Override
	public InitializrMetadata update(InitializrMetadata current) {
		String url = current.getConfiguration().getEnv().getSpringBootMetadataUrl();
		List<DefaultMetadataElement> bootVersions = fetchSpringBootVersions(url);
		if (bootVersions != null && !bootVersions.isEmpty()) {
			if (bootVersions.stream().noneMatch(DefaultMetadataElement::isDefault)) {
				// No default specified
				bootVersions.get(0).setDefault(true);
			}
			current.updateSpringBootVersions(bootVersions);
		}
		return current;
	}
		private String springBootMetadataUrl = "https://spring.io/project_metadata/spring-boot";
/* (Unterlassung) */
		public String getSpringBootMetadataUrl() {
			return this.springBootMetadataUrl;
		}

Bauen

Erstellen Sie wie in [README.adoc] beschrieben (https://github.com/spring-io/start.spring.io/blob/master/README.adoc).

$ cd start.spring.io
$ ./mvnw clean install

Es wird einige Zeit dauern, also warten Sie geduldig.

Funktionsprüfung

Wenn der Build ohne Probleme abgeschlossen ist, starten Sie ihn. Wenn möglich, ist es eine gute Idee, ohne Internetverbindung zu testen.

$ cd start-site
$ ../mvnw spring-boot:run

Greifen Sie nach dem Start mit einem Webbrowser auf http: // localhost: 8080 / zu. (Wenn Sie in der Vergangenheit andere Dienste mit derselben Adresse ausgeführt haben, aktualisieren Sie diese bitte.)

change_group.png

Das Design unterscheidet sich je nach Breite des Bildschirms, aber ich denke, es kann wie oben angezeigt werden. Nehmen Sie Änderungen an "Artefakt" vor, fügen Sie "Abhängigkeiten" hinzu und überprüfen Sie, ob "Erkunden" und "Generieren" funktionieren.

Verpackung

Wenn das oben genannte gut funktioniert, verpacken Sie es. Stellen Sie eine Verbindung zum Internet her und führen Sie den folgenden Befehl aus.

$ ../mvnw package

Das Testen dauert auch einige Zeit. Warten Sie daher bitte geduldig.

Durch erfolgreiches Packen wird eine Datei mit dem Namen "start-site-exec.jar" im Verzeichnis "target" generiert.

In Zielumgebung bereitstellen

Platzieren Sie start-site-exec.jar auf irgendeine Weise in der Zielumgebung. Beginnen Sie mit dem folgenden Befehl.

$ java -jar start-site-exec.jar

Wenn Sie den Standard-Listen-Port "8080" ändern möchten, fügen Sie am Ende "--server.port = Portnummer" hinzu. Das folgende Beispiel startet mit einer Portnummer, die in "3000" geändert wurde.

$ java -jar start-site-exec.jar --server.port=3000

: notepad_spiral: Wenn Sie es als Dienst starten möchten, klicken Sie bitte auf den folgenden Link.

Verwendung aus der Spring Tool Suite

Initializr-Einstellungen

  1. Wählen Sie im Menü "Fenster" → "Einstellungen", um den Einstellungsbildschirm zu öffnen.
  2. Wählen Sie in der Kategorie links "Spring" → "Boot" → "Initializr".
  3. Entfernen Sie unter "Initializr-URLs" die Standardeinstellungen "https: // start.spring.io" und "Neu", um die URL des Initializr für Ihre Zielumgebung hinzuzufügen.

sts_settings.png

Wenn Sie Änderungen wie im Bildschirmbeispiel gezeigt vornehmen können, klicken Sie auf "Übernehmen und schließen".

Erstellen eines Spring Starter-Projekts

Klicken Sie mit der rechten Maustaste in einen leeren Bereich von Package Explorer NewSpring Starter Poject.

Sie können dieselbe Arbeit wie die Internetverbindungsumgebung mit der folgenden URL ausführen.

New_Spring_Starter_Project.png

Referenzlink

Recommended Posts

Wir werden eine Spring Framework-Entwicklungsumgebung in der lokalen Umgebung erstellen.
Wir werden eine Spring Framework-Entwicklungsumgebung in der lokalen Umgebung erstellen.
Erstellen Sie eine Browsertestumgebung mit Capybara in der Docker-Entwicklungsumgebung
Behebung eines Problems, das eine AlreadyBuiltException in Spring Security verursacht hat
Ich habe versucht, einen OAuth-Client mit Spring Boot / Security (LINE-Anmeldung) zu implementieren.
Wir werden eine Spring Framework-Entwicklungsumgebung in der lokalen Umgebung erstellen.
Erstellen Sie mit IntelliJ IDEA eine Entwicklungsumgebung "Spring Thorough Introduction"
Erstellen einer Lambda-Entwicklungsumgebung mit Eclipse
Erstellen Sie mit Docker eine PureScript-Entwicklungsumgebung
Erstellen Sie eine Java-Entwicklungsumgebung auf dem Mac
Einfache Konstruktion der Docker + Django-Entwicklungsumgebung
Erstellen Sie eine Entwicklungsumgebung für Docker + Rails6 + Postgresql
Erstellen Sie mit Docker schnell eine WordPress-Entwicklungsumgebung
Einfache Erstellung der Docker Compose + Django-Entwicklungsumgebung
[Win10] Erstellen Sie eine JSF-Entwicklungsumgebung mit NetBeans
Erstellen Sie eine Entwicklungsumgebung für Docker, Java und Code
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Installieren Sie Ubuntu 20.04 in der virtuellen Box unter Windows 10 und erstellen Sie eine Entwicklungsumgebung mit Docker
Erstellen Sie eine Ruby on Rails-Entwicklungsumgebung in AWS Cloud9
Erstellen Sie die Entwicklungsumgebung von Docker + Laravel PHP + Vue.j in 5 Minuten
[Hinweis] Erstellen Sie eine Python3-Umgebung mit Docker in EC2
Eine Übersicht über die Spring Framework Resource-Oberfläche
Versuchen Sie, mit Docker eine Java-Entwicklungsumgebung zu erstellen
Eine Aufzeichnung über das Studium des Spring Framework von Grund auf neu
Spring Boot 1.x wird im nächsten Jahr EOL erreichen.
Einfache Überwachung des Raumklimas - ⑦ Mit einem einfachen Tool zusammenfassen -
Einführung von Spring Boot2, einem Java-Framework für die Webentwicklung (für Anfänger)
Erstellen Sie mit Java + Spring eine Web-APP-Entwicklungsumgebung mit Visual Studio Code
Build Spring für Android 2.0.0
Ruby ① Erstellen einer Windows-Umgebung
Verwenden Sie MailHog zum Überprüfen von E-Mails in der Entwicklungsumgebung (mit Docker).
Rufen Sie in Spring Boot eine Proxy-Instanz der Komponente selbst ab
Erstellen Sie eine Entwicklungsumgebung, in der die Haltepunkte von Ruby on Rails unter Windows funktionieren
Wie installiere ich die in Ubuntu verwendete Sprache und wie erstelle ich die Umgebung?
Erstellen Sie mit Docker Compose eine Entwicklungsumgebung für Django + MySQL + nginx
Schritte zum Erstellen einer Ruby on Rails-Entwicklungsumgebung mit Vagrant
Koexistenz von Flyway in der eingebetteten Datenbank (h2) der Entwicklungsumgebung und der Release-Datenbank (SQL Server) mit Spring Boot
Erstellen Sie eine Doker-basierte Entwicklungsumgebung unter Windows 10 Home 2020 Version 2 VS Code sollte die Docker-Entwicklungsumgebung komfortabel gestalten
Spring Boot-Anwendungsentwicklung in Eclipse
Erstellen Sie mit Docker eine Node.js-Umgebung
Erstellen Sie mit Pleiades 4.8 eine Tomcat 8.5-Umgebung
Java Spring-Umgebung in vs Code
Erstellung der Play Framework 2.6 (Java) -Entwicklungsumgebung
Erstellen Sie eine Datenbank in einer Produktionsumgebung
Informationen zur aktuellen Entwicklungsumgebung (Java 8)
Erstellen einer Java-Entwicklungsumgebung (für Mac)
Erstellen Sie eine XAMPP-Umgebung unter Ubuntu
Erstellen Sie mit Eclipse eine Jooby-Entwicklungsumgebung
Erstellen Sie eine Unity-Entwicklungsumgebung auf Docker
Erstellen Sie mit dem Befehl cURL + tar ein Spring Boot-App-Entwicklungsprojekt
[Kopieren und Einfügen] Erstellen Sie mit Docker Compose Part 2 eine Laravel-Entwicklungsumgebung
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 6.x)
Erstellen Sie mit Docker eine lokale Entwicklungsumgebung für Rails-Tutorials (Rails 6 + PostgreSQL + Webpack)
Erstellen Sie mit CentOS7 + Nginx + pm2 + Nuxt.js eine Entwicklungsumgebung auf AWS EC2