** Cette page est incomplète **: cold_sweat:
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.
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/).
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 |
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.
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é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.
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é.
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'onglet
Propriétés`
--Ouvrir la troisième page avec la navigation de page
Enregistrer
--security.policy.password.expiration.days: saisissez la date d'expiration en jours
--security.policy.password.expiration.enabled: entrez false si aucune date d'expirationPlacez 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.
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.
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`.
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é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.
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
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.)
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:
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
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;
}
Construisez comme décrit dans README.adoc.
$ cd start.spring.io
$ ./mvnw clean install
Cela prendra du temps, alors attendez patiemment.
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.)
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.
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
.
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.
Spring
→ Boot
→ ʻInitializr`.,
Remove la valeur par défaut
https: // start.spring.io et utilisez
New` pour ajouter l'URL de Initializr pour votre environnement cible.Si vous pouvez apporter des modifications comme indiqué dans l'exemple d'écran, cliquez sur «Appliquer et fermer».
Faites un clic droit dans une zone vide de Package Explorer
→ New
→ Spring Starter Poject
.
Vous pouvez effectuer le même travail que l'environnement de connexion Internet avec l'URL définie comme suit.
Recommended Posts