** Diese Seite ist unvollständig **: cold_sweat:
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.
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.
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 |
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.
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 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.
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.
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
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.
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.
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".
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 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.
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
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.)
Ä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:
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
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;
}
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.
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.)
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.
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.
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.
Wenn Sie Änderungen wie im Bildschirmbeispiel gezeigt vornehmen können, klicken Sie auf "Übernehmen und schließen".
Klicken Sie mit der rechten Maustaste in einen leeren Bereich von Package Explorer
→ New
→ Spring Starter Poject
.
Sie können dieselbe Arbeit wie die Internetverbindungsumgebung mit der folgenden URL ausführen.