Angular和Spring Boot:配置使它们有效地协同工作
Angular projet构建依赖于
Angular CLI tool.
Spring boot项目的构建依赖于 Spring Boot Maven Plugin. 那么如何配置和构建一个在前端托管Angular应用程序的Spring Boot应用程序呢? 我的要求如下: >使用Maven作为Java构建工具 解决方法
角度配置
首先,我需要配置Angular应用程序,以便在Spring Boot Maven项目的源代码目录中提供Angular应用程序的构建. 一个简单的方法需要2个简单的更改: >在Spring Boot Maven项目的根文件夹中移动angular应用程序文件夹. 那是 : { ... "apps": [ { "root": "src","outDir": "../src/main/resources/static",... } 默认情况下,Spring Boot从类路径中的/ static(或/ public或/ resources或/ META-INF / resources)目录或ServletContext的根目录中提供静态内容. 这样,当我执行ng build命令时,Webpack捆绑的angular应用程序将位于Spring Boot静态内容的资源目录中. Spring Boot配置 我不想在开发和后期开发环境中执行完全相同的Spring Boot构建任务. 在开发中,我希望快速构建. 要为后期开发环境构建应用程序,我希望有一个可靠的构建,并包含最终内容. >我想从头开始执行Angular应用程序的完整构建(甚至整个Spring Boot应用程序). 为了能够以干净/可靠的方式从一种类型的构建切换到另一种构建,我想指定两个不同的构建. Maven(作为Gradle)提供了build profile功能,可以很好地满足这一要求. 以下是开发构建的Maven配置文件: <profile> <id>fast-build</id> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <jvmArguments> -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 </jvmArguments> <addResources>true</addResources> </configuration> </plugin> </plugins> </build> </profile> 一些额外的说明: >在开发中,我希望总是有一种方法可以在需要时添加断点,而无需重新启动应用程序. < jvmArguments> 指定5005作为调试器侦听器的端口,而不阻塞(suspend = n)服务器. >要启用静态资源的热刷新,我将addResources设置为true. 以下是开发后构建的Maven配置文件(以及它使用的声明属性): <properties> ... <node.version>v6.9.1</node.version> <npm.version>3.10.8</npm.version> ... </properties> ... <profile> <id>full-build</id> <activation> <activeByDefault>true</activeByDefault> </activation> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId> <version>1.2</version> <configuration> <installDirectory>angular-app</installDirectory> <workingDirectory>angular-app</workingDirectory> </configuration> <executions> <execution> <id>install node and npm</id> <goals> <goal>install-node-and-npm</goal> </goals> <configuration> <nodeVersion>${node.version}</nodeVersion> <npmVersion>${npm.version}</npmVersion> </configuration> </execution> <execution> <id>install angular app</id> <goals> <goal>npm</goal> </goals> <configuration> <arguments>install</arguments> </configuration> </execution> <execution> <id>npm build</id> <goals> <goal>npm</goal> </goals> <configuration> <arguments>run build</arguments> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> 一些额外的说明: >此处声明的angular-app:< workingDirectory> angular-app< / workingDirectory>是我在Maven Spring Boot项目中复制的角度应用程序的目录. 用于运行构建的Angular和Spring Boot命令 >对于开发构建: > Angular CLI:从angular-app目录中,执行ng build -w. >对于后期开发构建: >不需要Angular CLI.> Spring Boot:从maven项目的基目录开始,执行mvn spring-boot:run (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 【数据结构】学习笔记(一)——基本概念和框架
- angularjs – 通过UI-Grid cellTemplate呈现错误呈现的指令
- yum报错:Error: requested datatype primary not availabl
- scala – 如何将Source [ByteString,Any]转换为InputStream
- yum下载rpm包、源码包安装
- scala – 不推断多个参数关闭参数类型
- 使用AngularJS重定向
- selenium – 检测Angular 2是否已运行
- 将多个应用程序作为群集中的Docker容器,处理MySQL的方法
- 了解使用wsimport命令生成webService客户端代码实例