[JAVA] Nous allons créer un environnement de développement Spring Framework dans l'environnement sur site.

** Cette page est incomplète **: cold_sweat:

introduction

C'est une histoire sur la création d'un environnement de développement pour Spring Framework, qui est un framework d'application basé sur Java, dans un environnement sur site où la connexion Internet n'est pas possible.

Les thèmes suivants seront largement couverts.

--Construire un serveur de référentiel Maven -Construire un miroir de Spring Initializr

L'exemple de commande est écrit sur la base de Linux, alors remplacez / dans le délimiteur de chemin en fonction de votre environnement.

Connaissances nécessaires, etc.

Créer un serveur de référentiel Maven

Vous pouvez également distribuer un référentiel local Maven qui met en cache les bibliothèques dépendantes de Spring Framework (comme le répertoire .m2 dans votre répertoire personnel), mais j'aimerais créer un serveur de référentiel Maven pour la maintenabilité.

En tant que gestionnaire de référentiel pour Maven, Nexus (Professional Edition de Sonatype, qui est également officiellement utilisé. repository), OSS Edition) semble être célèbre, mais compte tenu des ressources nécessaires et de la facilité de construction, [Apache Archiva]( Je voudrais utiliser https://archiva.apache.org/).

Environnement requis

article La description
JDK 1.8
Espace disque Lors du déploiement d'Apache Archiva, il est d'environ 80 Mo, mais lors de la mise en cache du référentiel, il est préférable de le réserver en G octets.
OS Linux、Mac OS、Solaris、Windows

Post-scriptum 2020/5/1

Dans les étapes suivantes, il est dit «Déployez dans un environnement qui peut se connecter à Internet.» Cependant, dans un environnement qui peut se connecter à Internet, utilisez Maven directement sans utiliser Apache Achiva et téléchargez sur ~ / .m2 local. Il a été souligné que le contenu de ~ / .m2 / repository devrait être copié dans apache-archiva-2.2.4 / repositories / internal dans l'environnement cible par certains moyens.

Télécharger Apache Archiva

Vous pouvez le télécharger sur https://archiva.apache.org/download.html.

Vous pouvez choisir entre la version autonome (tar.gz ou zip) qui inclut Tomcat et la version WAR.

Si vous avez déjà un serveur d'applications Java tel que Tomcat en cours d'exécution, il semble préférable d'utiliser la version WAR, mais vous devez créer un fichier de configuration et déployer des bibliothèques dépendantes. Voir les liens ci-dessous pour plus d'informations.

Ici, nous avons choisi la version autonome, qui est facile à construire.

Déployer Apache Archiva

Déployez non seulement sur l'environnement sur site cible, mais également sur un environnement qui peut se connecter à Internet pour migrer le contenu du référentiel vers l'environnement cible. Suivez les étapes ci-dessous pour chaque environnement.

Tout d'abord, décompressez l'archive. Étant donné que la hiérarchie des répertoires du référentiel sera profonde, dans le cas de Windows, il est préférable de l'étendre à la hiérarchie la plus superficielle possible, comme directement sous le lecteur.

Voici un exemple de décompression de la version zip avec la commande unzip. (Le numéro de version est au moment de la publication.)

$ unzip apache-archiva-2.2.4-bin.zip

Une fois déployé, lancez Apache Archiva.

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

Veuillez vous référer au document suivant car la méthode pour en faire un service diffère selon l'environnement.

C'est en anglais, mais si vous connaissez le titre et l'exemple d'exécution de la commande, je pense que ce sera possible.

Une fois Apache Archiva démarré, accédez à http: // localhost: 8080 / avec un navigateur Web. Si l'écran suivant s'affiche, c'est OK.

archiva.png

Créer un utilisateur administrateur

Cliquez sur le bouton rouge intitulé «Créer un utilisateur administrateur» en haut à droite de l'interface Web d'Apache Archiva. Un formulaire de création d'un utilisateur administrateur s'affiche. Saisissez les éléments obligatoires suivants.

--Password: saisissez le mot de passe. --Confirm Password: Entrez le même mot de passe que ci-dessus pour confirmation.

Cliquez sur le bouton «Enregistrer» lorsque vous avez terminé.

À propos de la date d'expiration du mot de passe

Par défaut, le mot de passe expire dans 90 jours. Si vous souhaitez modifier ce paramètre, procédez comme suit:

--Dans le menu sur le côté gauche, cliquez sur ʻUsers Runtime Configuration --Ouvrez l'ongletPropriétés` --Ouvrir la troisième page avec la navigation de page

Paramètres pour obtenir des artefacts (bibliothèque) d'Apache Archiva

Placez un fichier appelé settings.xml dans un répertoire appelé .m2 dans votre répertoire personnel avec le contenu suivant. (Remplacez la partie localhost par un nom d'hôte approprié.)

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>

Par défaut, Maven Central est uniquement défini comme référentiel distant. Si vous souhaitez également utiliser d'autres référentiels, veuillez consulter les liens ci-dessous.

Obtenez les artefacts requis (bibliothèque)

Dans un environnement avec une connexion Internet, utilisez la commande mvn comme d'habitude dans le projet Maven. Exécutez l'objectif ou la phase que vous utilisez normalement. (Pour les projets Spring Boot, vous pouvez utiliser le mvnw inclus.)

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

Assurez-vous qu'il est téléchargé à partir de l'ensemble d'hôtes ci-dessus.

La suite d'outils Spring (Spring Tools for Eclipse) utilise également les paramètres ci-dessus.

Copiez le référentiel dans l'environnement cible et mettez à jour l'index

apache-archiva-2.2.4 / repositories / internal Copiez ce qui suit dans apache-archiva-2.2.4 / repositories / internal dans l'environnement cible par certains moyens.

Connectez-vous à l'interface Web d'Apache Archiva, sélectionnez Référentiels dans le menu de gauche, et sélectionnezAnalyse des répertoires dans la liste déroulante appelée ʻAction`.

dir_scan.png

Cela prendra un certain temps, donc après un certain temps, sélectionnez «Parcourir» dans le menu sur le côté gauche et vérifiez si le répertoire copié, etc. est affiché.


Créer un miroir pour Spring Initializr

Créez un miroir de Spring Initializr qui peut générer un modèle pour l'application Spring Boot.

Si vous écrivez pom.xml par vous-même ou connaissez la structure de fichier requise, vous n'en avez probablement pas besoin, mais Spring Boot est divisé par deux (excessif?), Et Spring Tool Suite (Spring Tools for Eclipse). Nous le construirons en tenant compte de l'affinité avec.

: avertissement: le travail suivant est effectué dans un environnement où vous pouvez vous connecter à Internet, sauf indication contraire. De plus, si les paramètres ci-dessus sont définis via Apache Archiva, les bibliothèques requises ne peuvent pas être obtenues, annulez donc les paramètres une fois. (Côté client)

: notebook_with_decorative_cover: J'ai travaillé avec CentOS 8.1 sur une Virtual Box avec un disque dur de 20 Go, mais en essayant diverses choses, j'ai expérimenté beaucoup d'utilisation de / tmp et un échec de construction. fait. Nettoyez l'intérieur de / tmp le cas échéant.

Cloner start.spring.io

La source Spring Initializr (https://github.com/spring-io/start.spring.io) est maintenue sur GitHub. Clonez comme suit.

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

Modification de application.yml (Correction de bootVersions le 30/05/2020)

Si vous empaquetez le projet cloné tel quel, la version de Spring Boot qui peut être sélectionnée comme suit lors du démarrage dans un environnement où vous ne pouvez pas vous connecter à Internet sera différente de la version originale. (Parce que les métadonnées ne peuvent pas être obtenues à partir de https://spring.io/project_metadata/spring-boot.)

no_internet.png

Modifiez la section bootVersions de start.spring.io/start-site/src/main/resources/application.yml. Dans mon cas, je n'ai pas besoin de la version SNAPSHOT, je l'ai donc modifiée comme suit.

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
 
 ---
 

: avertissement: Il est nécessaire de le corriger pour qu'il y ait définitivement un default: true. Si tout est faux, l'écran sera affiché pendant un moment, puis il sera vide. (Des gens expérimentés parlent): avertissement:

Vous pouvez également changer la valeur par défaut de Group, com.example, en jp.co.example en ajoutant la section group-id après la section bootVersions comme indiqué ci-dessous. ..

  group-id:
    value: jp.co.example

: avertissement: Faites correspondre le retrait à bootVersions. : avertissement:

2020/05/29 Addendum: N'allez pas sur le site d'origine pour obtenir des métadonnées

Il est décrit uniquement dans Ancien manuel de référence, mais ʻinitializr.env.springBootMetadataUrl` est vide ou S'il est nul, il n'essaiera pas d'obtenir les métadonnées à la maison.

--- 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

référence

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";
/* (Omission) */
		public String getSpringBootMetadataUrl() {
			return this.springBootMetadataUrl;
		}

Construire

Construisez comme décrit dans README.adoc.

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

Cela prendra du temps, alors attendez patiemment.

Contrôle de fonctionnement

Lorsque la construction se termine sans aucun problème, essayez de la démarrer. Si possible, c'est une bonne idée de tester sans connexion Internet.

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

Une fois démarré, accédez à http: // localhost: 8080 / avec un navigateur Web. (Si vous avez exécuté d'autres services avec la même adresse dans le passé, veuillez mettre à jour.)

change_group.png

Le design diffère selon la largeur de l'écran, mais je pense qu'il peut être affiché comme ci-dessus. Apportez des modifications à «Artifact», ajoutez «Dépendances» et vérifiez que «Explorer» et «Générer» fonctionnent.

Emballage

Si ce qui précède fonctionne correctement, conditionnez-le. Connectez-vous à Internet et exécutez la commande suivante.

$ ../mvnw package

Cela prend également du temps à tester, alors veuillez patienter.

Un empaquetage réussi générera un fichier appelé start-site-exec.jar dans le répertoire target.

Déployer dans l'environnement cible

Placez start-site-exec.jar dans l'environnement cible d'une manière ou d'une autre. Commencez par la commande suivante.

$ java -jar start-site-exec.jar

Si vous voulez changer le port d'écoute par défaut 8080, ajoutez --server.port = numéro de port à la fin. L'exemple suivant démarre avec le numéro de port changé en «3000».

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

: notepad_spiral: Si vous souhaitez le démarrer en tant que service, veuillez vous référer au lien ci-dessous.

Utilisation à partir de Spring Tool Suite

Paramètres Initializr

  1. Dans le menu, sélectionnez «Fenêtre» → «Préférences» pour ouvrir l'écran des paramètres.
  2. Dans la catégorie de gauche, sélectionnez Spring Boot → ʻInitializr`.
  3. Dans ʻInitializr URLs, Remove la valeur par défaut https: // start.spring.io et utilisez New` pour ajouter l'URL de Initializr pour votre environnement cible.

sts_settings.png

Si vous pouvez apporter des modifications comme indiqué dans l'exemple d'écran, cliquez sur «Appliquer et fermer».

Créer un projet Spring Starter

Faites un clic droit dans une zone vide de Package Explorer NewSpring Starter Poject.

Vous pouvez effectuer le même travail que l'environnement de connexion Internet avec l'URL définie comme suit.

New_Spring_Starter_Project.png

Lien de référence

Recommended Posts

Nous allons créer un environnement de développement Spring Framework dans l'environnement sur site.
Nous allons créer un environnement de développement Spring Framework dans l'environnement sur site.
Créer un environnement de test de navigateur à l'aide de Capybara dans l'environnement de développement Docker
Résolution d'un problème qui a provoqué une exception DéjàBuiltException dans Spring Security
J'ai essayé d'implémenter un client OAuth avec Spring Boot / Security (connexion LINE)
Nous allons créer un environnement de développement Spring Framework dans l'environnement sur site.
Créez un environnement de développement «Spring Thorough Introduction» avec IntelliJ IDEA
Création d'un environnement de développement Lambda avec Eclipse
Créer un environnement de développement PureScript avec Docker
Créer un environnement de développement Java sur Mac
Construction d'un environnement de développement simple Docker + Django
Créer un environnement de développement pour Docker + Rails6 + Postgresql
Créez rapidement un environnement de développement WordPress avec Docker
Construction de l'environnement de développement Simple Docker Compose + Django
[Win10] Créer un environnement de développement JSF avec NetBeans
Créer un environnement de développement pour Docker, Java, vs code
Créer un environnement de développement Spring Boot avec docker
Créer un environnement de développement Java avec VS Code
Installez Ubuntu 20.04 dans la boîte virtuelle sur Windows10 et créez un environnement de développement à l'aide de docker
Créer un environnement de développement Ruby on Rails sur AWS Cloud9
Créez un environnement de développement Docker + Laravel PHP + Vue.js en 5 minutes
[Note] Créez un environnement Python3 avec Docker dans EC2
Une note de révision de l'interface Spring Framework Resource
Essayez de créer un environnement de développement Java à l'aide de Docker
Un record d'étude du Spring Framework à partir de zéro
Spring Boot 1.x atteindra EOL l'année prochaine.
Surveillez facilement l'environnement intérieur - ⑦ Résumez dans un outil simple -
Présentation de Spring Boot2, un framework Java pour le développement Web (pour les débutants)
Créer un environnement de développement Web APP avec Java + Spring avec Visual Studio Code
Créer un environnement Spring pour Android 2.0.0
Ruby ① Création d'un environnement Windows
Utilisez MailHog pour vérifier le courrier dans l'environnement de développement (à l'aide de Docker)
Obtenez une instance proxy du composant lui-même dans Spring Boot
Créez un environnement de développement où les points d'arrêt de Ruby on Rails fonctionnent sous Windows
Comment installer le langage utilisé dans Ubuntu et comment créer l'environnement
Créer un environnement de développement pour Django + MySQL + nginx avec Docker Compose
Étapes pour créer un environnement de développement Ruby on Rails avec Vagrant
Coexistence de Flyway dans la base de données embarquée (h2) de l'environnement de développement et la base de données des versions (SQL Server) avec Spring Boot
Créez un environnement de développement basé sur Doker sur Windows 10 Famille 2020 ver. Partie 2 VS Code devrait rendre l'environnement de développement Docker confortable
Développement d'applications Spring Boot dans Eclipse
Créer un environnement Node.js avec Docker
Créer un environnement Tomcat 8.5 avec Pleiades 4.8
Environnement Java Spring dans vs Code
Création de l'environnement de développement Play Framework 2.6 (Java)
Créer une base de données dans un environnement de production
À propos de l'environnement de développement actuel (Java 8)
Création d'un environnement de développement Java (pour Mac)
Créer un environnement XAMPP sur Ubuntu
Créer un environnement de développement Jooby avec Eclipse
Créer un environnement de développement Unity sur docker
Créez un projet de développement d'application Spring Boot avec la commande cURL + tar
[Copier et coller] Créez un environnement de développement Laravel avec Docker Compose, partie 2
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Créez un environnement de développement local pour les didacticiels Rails avec Docker (Rails 6 + PostgreSQL + Webpack)
Créez un environnement de développement sur AWS EC2 avec CentOS7 + Nginx + pm2 + Nuxt.js