jak zintegrować aplikację internetową Angular 2 + Java Maven
Stworzyłem aplikację front-end Angular 2 i jedną aplikację Java Rest WS Back-end, która jest połączona z DB.
Moja struktura folderów dla aplikacji Angular 2 jest podana poniżej-
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
Struktura mojej aplikacji internetowej Java Maven jest podana poniżej:
JerseyWebApp
src
main
java
Custom Package
java classes
resources
webapp
WEB-INF
web.xml
index.html
pom.xml
Chcę wiedzieć, jak zintegrować te dwie aplikacje w jedną aplikację, która będzie generować tylko jeden plik wojenny.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
6 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Struktura katalogów
(za
wyjątek
Pozostałe foldery ngapp mają standardową strukturę Maven.)
Część kątowa
Odkryć
ngapp w terminalu i wprowadź polecenie
ng init
dla inicjalizacji węzła i konfiguracji npm, wynikiem będzie prosta przykładowa aplikacja Angular2 z następującą strukturą katalogów wewnątrz folderu ngapp: -
Ta struktura jest odpowiednikiem Angulara struktury projektu Maven i katalogu
src
jest źródłem aplikacji Angular, podobnie jak
polecenie budowania
maven generuje swoje wyjście w
cel
folder, polecenie
ng assemblies
generuje dane wyjściowe w folderze
dist
.
Aby spakować wygenerowaną aplikację Angular do pliku WAR wygenerowanego przez Maven, zmień konfigurację kompilacji, aby zmienić folder wyjściowy z
dist
na
webapp
, otwarty
angular-cli.json i zmień jego outDir, jak pokazano poniżej: -
W tej chwili komenda
ng build
utworzy osadzoną aplikację Angular w katalogu
ng
ngfirst/src/main/folders
webapp
.
Część Maven
Otwórz pom.xml i skonfiguruj następujące trzy wtyczki maven: -
Tak to powinno wyglądać: -
Budowa projektu
Maven (a także aplikacje Angular)
Otwórz Terminal w folderze głównym
projekt
ngfirst i uruchom polecenie
mvn package
, spowoduje to utworzenie pliku WAR (ngfirst.war) pod adresem
cel
teczka.
Rozszerzać
ngfirst.war
w pojemniku, otwarty
http://localhost:8080/ngfirst/ng/index.html
http://localhost:8080/ngfirst/ng/index.html
w przeglądarce. (w razie potrzeby zmień nazwę hosta i port)
Jeśli wszystko poszło dobrze, powinieneś zobaczyć, jak
aplikacja działa!
w przeglądarce jest to aplikacja Angular w działaniu !!
Wstępne przetwarzanie JSP
Możemy wykorzystać możliwości dynamicznej konfiguracji i renderowania stron technologii JSP z aplikacją Angular, Angular SPA jest obsługiwany przez kontener Java jako zwykła strona HTML,
index.html
w tym przypadku, jeśli skonfigurujemy silnik JSP tak, aby wstępnie przetwarzał również pliki html, wtedy całą magię JSP można włączyć na stronie Angular SPA, po prostu umieść następujące elementy wewnątrz strony
web.xml
Zapisz, odbuduj projekt Maven, wdróż WOJNĘ i voila !!
Anonimowy użytkownik
Potwierdzenie od:
prj-angular
i anoter dla aplikacji wojskowej o nazwie
prj-war
.
pierwszy
prj angular
wybudowany:
potem drugi
prj_war
budować:
Postępuj zgodnie z odpowiednią konfiguracją wtyczki, której użyłem:
prj kątowy (wyciąg z pom.xml
)
PRJ from War (wyciąg pom.xml
)
Anonimowy użytkownik
Potwierdzenie od:
Korzystanie z Netbeans 8.1 i Tomcat Servlet 8.0.27
Struktura plików projektów Angular i Java.
Projekt Java nazywa się Foo. Projekt pręta kątowego
Anonimowy użytkownik
Potwierdzenie od:
W ten sposób możesz zmienić swoją aplikację Angular bez wpływu na usługę i odwrotnie. Po drugie, twój apache/nginx dostarczy twoje js i html szybciej z Angular zamiast Tomcat (na przykład). Ale jeśli nadal chcesz umieścić swoją aplikację Angular w wojnie, obraz jest taki, że wszystkie zasoby internetowe znajdują się w src/main/webapp.
Anonimowy użytkownik
Potwierdzenie od:
Dobrze, zacznijmy. Cała struktura projektu została przedstawiona na poniższym rysunku.
https://i.stack.imgur.com/guCQs.png
Jak widać, umieściłem projekt Angular w folderze „src \ main \ ngapp”. Do projektu Java (backend) użyłem Eclipse IDE, do projektu Angular użyłem Webstorm. Możesz wybrać preferowane IDE do zarządzania projektami. Co najważniejsze, potrzebujesz dwóch IDE do zarządzania całym projektem.
Aby zbudować projekt Angular za pomocą Mavena, użyłem następującej definicji profilu Mavena.
<pre class="lang-xml prettyprint-override">
Jak widać, użyłem wtyczki , aby zainstalować węzeł i uruchomić npm, aby zbudować projekt Angular. Tak więc, kiedy uruchamiam profil maven , wtyczka jest używana do:
Klient Angular należy umieścić w folderze aplikacji internetowej. W tym celu projekt Angular jest skonfigurowany tak, aby mieć . Skompilowany projekt należy również umieścić w . W znajdziesz:
W projekcie bez Spring Boot prawdopodobnie będziesz musiał umieścić zbudowany projekt kątowy bezpośrednio w folderze . Aby to zrobić, po prostu zmodyfikuj plik , aby odpowiadał swoim potrzebom.
Cały kod projektu można znaleźć pod adresem
mój projekt
https://github.com/xcesco/files-on-cloud
github. Projekt wtyczki jest zlokalizowany
tutaj
https://github.com/eirslett/frontend-maven-plugin
.
Anonimowy użytkownik
Potwierdzenie od: