comment intégrer Angulaire 2 + Java Maven Application Web
J'ai créé un Angulaires 2 avant la fin de l'Application.et j'ai créé un Java Reste WS Application de Back-end qui est relié à la DB.
Mon Dossier structure Angulaire 2 App est au-dessous de
Angular2App
confg
dist
e2e
node_modules
public
src
app
favicon.ico
index.html
main.ts
system-config.ts
tsconfig.json
typings.d.ts
tmp
typings
.editorconfig
.gitignore
angular-cli.json
angular-cli-build.js
package.json
README.md
tslint.json
typings.json
Et Mon Java Maven Web Structure de la Demande est au-dessous de
JerseyWebApp
src
main
java
Custom Package
java classes
resources
webapp
WEB-INF
web.xml
index.html
pom.xml
Je veux savoir comment intégrer ces deux applications en une seule application, qui permettra de produire un seul fichier war.
- - Je construire mon application en utilisant le printemps de démarrage et nous bocaux pour angular2. Pour des exemples de consulter github.com/Kiran-N/springboot-and-angular2
- Eu la même tâche, voici mon approche stackoverflow.com/questions/37512154/...
Vous devez vous connecter pour publier un commentaire.
Voici ce que j'ai fait:-
Répertoire Stucture (Sauf pour ngapp dossier reste est Maven standard de la structure.)
Partie Angulaire
Ouvrir ngapp dossier dans le terminal et tapez ng init de commande pour initialiser nœud et npm configuration, le résultat sera une simple Angular2 exemple d'application sera la structure de répertoire suivante à l'intérieur de ngapp dossier:-
Cette structure est Angulaire équivalent de projet Maven de la structure et src répertoire est Angulaire de l'Application source, tout comme maven build commande génère sa sortie en cible dossier, ng construire commande génère sa sortie en dist dossier.
Pour le paquet généré Angulaire de la demande dans un délai de Maven généré GUERRE de modifier la configuration de build pour modifier le dossier de sortie de dist à webapp, ouvrez angulaires-cli.json fichier et de modifier son outDir comme ci-dessous:-
À ce point ng construire commande va générer construit Angulaire de l'Application à l'intérieur de ng répertoire de ngfirst/src/main/webapp dossier.
Maven Partie
Ouvrir pom.xml et de configurer à la suite de trois plugins maven:-
Voici comment il devrait ressembler à:-
Bâtiment Projet Maven (et Angulaire Application trop)
Ouvrir un Terminal dans le dossier racine du projet ngfirst et exécuter mvn package de commande, cela va générer un fichier WAR (ngfirst.la guerre) dans cible dossier.
Déployer ngfirst.la guerre dans un récipient, ouvrez http://localhost:8080/ngfirst/ng/index.html dans le Navigateur. (ajustez votre nom d'hôte et le port si nécessaire)
Si tout s'est bien passé, vous devriez voir application fonctionne! dans le navigateur, qui est Angulaire de l'Application au travail!!!
JSP de Pré-Traitement
Nous pouvons tirer parti de la configuration dynamique et le rendu de la page capacités de la technologie JSP Angulaire de l'application, Angulaire SPA est servi par le Java conteneur en tant que page HTML ordinaire, index.html dans ce cas, si nous configurer le Moteur de JSP pour pré-traiter les fichiers html, puis tous les JSP de la magie peut être inclus à l'intérieur Angulaire de la SPA de la Page, il suffit d'inclure le texte suivant à l'intérieur web.xml
Enregistrer, de reconstruire projet maven, de déployer la GUERRE et le tour est joué!!
<warSourceExcludes>ngapp/**</warSourceExcludes>
à exclure ngapp dossier oupackagingExcludes>
ng serve --prod
oung build
de sortie ?Mon côté j'ai un maven module angulaire sources ont appelé prj-angulaire, et anoter un pour la guerre application appelée prj-guerre.
première prj angulaire est construit:
npm install
etng build
(merci à @J_Dev!)dist/
puis, en seconde prj_war est de construire:
Suivre dans la configuration du plugin, j'ai utilisé:
prj angulaire (pom.xml extrait)
prj guerre (pom.xml extrait)
Curieusement, je l'a fait la semaine dernière!
Angulaire et Java structure des fichiers du projet.
Projet Java est appelé Foo. Angulaire du Projet de Bar
Je recommande de laisser les deux applications séparées, de cette façon, vous avez de la modularité.
De cette façon, vous pouvez changer l'angle d'Application sans nuire à votre service, et vice versa. Pour le second, votre apache/nginx sont plus rapides pour livrer votre js et html à partir Angulaire au lieu de Tomcat (par exemple). Mais si vous voulez toujours mettre de l'angle d'application à l'intérieur de la guerre, le motif est que toutes les ressources web sont dans src/main/webapp.
Je veux partager comment configurer mon Angulaire des projets Java. Certaines choses importantes:
Il n'y a qu'un seul projet Maven et cela me permet de construire l'ensemble du projet. Cela ne signifie pas que je peux toujours construire le front-end et le back-end séparément.
Mon projet est basé sur Spring Boot cadre. Cependant, vous pouvez facilement adapter ma solution à votre situation. Je crée les
output
code Angulaire du projet est placé sous la "META-INF" dossier. Vous pouvez bien sûr le modifier si vous n'utilisez pas le Printemps de Démarrage.Dans mon projet, je souhaite publier l'angle de projet dans le
public
dossier.Quand je développe, je lance l'angle de projet et le backend projet séparément: Anguleuse avec
ng serve
et le backend de projet (Java partie) dans l'IDE (Eclipse).Ok, nous allons commencer. L'ensemble de la structure du projet est représenté dans l'image ci-dessous.
Comme vous pouvez le voir, j'ai mis de l'angle de projet dans le 'src\main\ngapp' dossier. Pour le projet Java (le backend), j'ai utilisé Eclipse IDE, pour l'angle de projet, j'ai utilisé Webstorm. Vous pouvez choisir votre IDE préféré pour gérer le projet. La chose la plus importante: vous aurez besoin de deux IDE pour gérer l'ensemble du projet.
Pour construire l'angle de projet avec Maven, j'ai utilisé le suivant maven définition de profil.
Comme vous pouvez le voir, j'ai utilisé le
com.github.eirslett:frontend-maven-plugin
plugin à installer nœud et d'exécuter des mnp pour construire l'angle de projet. De cette façon, lorsque je lance le profil mavenbuild-client
Le plugin est utilisé pour:De vérification et d'installation, si elle est nécessaire, le nœud de la version
v10.13.0
dans l'angle de dossier de projetsrc/main/ngapp/
Exécutez la commande
npm run build
. Dans l'angle de projet est la construction d'alias dans lepackage.json
Angulaire client doit être en place dans
public
dossier de l'application web. Pour ce faire, l'angle de projet est configuré pour avoir lebaseHref=/public
. En outre, le valencien, le projet doit être en place danssrc/main/resources/META-INF/resources/public
. Dansangular.json
vous trouverez:Dans une zone de non-Printemps de Démarrage de projet, vous aurez probablement besoin de mettre le bâti angulaire du projet directement dans
src/main/webapp/public
dossier. Pour ce faire, il suffit de modifier leangular.json
fichier que vous en avez besoin.Vous pouvez trouver le code du projet dans mon projet github. Le plugin projet est ici.