2017-06-08 3 views
0

Actuellement, je cours une application backboot springboot et une application frontale Angular2.Angular 2 profils et tomcat

Nous ne voulons pas changer le code lorsque nous passons d'un environnement local/développement/acceptation à un autre, nous voulons juste informer notre serveur Tomcat de la version du déploiement que nous voulons utiliser.

Pour mon back-end, j'ai pu suivre ce guide https://www.javacodegeeks.com/2012/06/spring-31-profiles-and-tomcat.html

Maintenant, je veux aussi le faire pour ma frontend demande Angular2 mais je n'ai pas vraiment une idée sur la façon de commencer ou où chercher.

Merci

+0

Utilisez-vous angular-cli? Si c'est le cas, vous pouvez déclarer des environnements dans votre fichier .angular-cli.json et créer différentes versions de votre application en utilisant "ng build --environment = production" et d'autres. Bien sûr, cela ne fonctionne que lors de la compilation. Si vous voulez changer l'environnement après la construction peut-être vous pourriez construire l'application angulaire pour plusieurs environnements et laisser le servlet servir différentes constructions angulaires basées sur le profil de ressort. – andreas

+0

Ouais, j'utilise actuellement angular-cli et déclare mes environnements. Mais maintenant, je voudrais suivre le principe de «construire une fois, déployer n'importe où», mais cela semble plus difficile que cela devrait être avec Angular2. – RoyalSausage

Répondre

2

Il pourrait ne pas être la meilleure réponse, mais d'une façon pourrait être ceci:

1) Dans votre package.json définir vos différentes cibles de construction (j'ai omis toutes les options sauf chemin de sortie par souci de concision), qui utilisera des répertoires différents pour leur production:

"scripts": { 
    "build-prod": "ng build --output-path dist-prod", 
    "build-dev": "ng build --output-path dist-dev" 
} 

2) Soit Maven (ou votre autre outil de construction préféré) construire toutes les variantes angulaires lorsque vous créez le Servlet. Assurez-vous que toutes les variantes seront déployées avec votre servlet.

3) Ajouter des configs pour vos différents environnements qui ajouteront ResourceHandlers pour le bon chemin, en fonction de cet environnement. Je ne l'ai pas utilisé Springboot encore alors voici un extrait d'un Spring MVC Java régulière Config:

@Configuration 
@Profile("dev") 
public class DevConfig { 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 

     registry.addResourceHandler("/**").addResourceLocations("/dist-dev/") 
       .resourceChain(true).addResolver(new PathResourceResolver()); 
    } 

} 

Espérons que cela aidera jusqu'à ce que quelqu'un a une meilleure idée. :-)