您的位置:首页 > 编程语言 > Java开发

springboot - 集成angular2 应用打包部署

2018-01-18 11:51 357 查看
1. Spring Boot 内置web 
   spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动。其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat)。当然你也可以将项目打包成war包,放到独立的web容器中(Tomcat、weblogic等等),本文先以打成 jar 为例

对server的几个常用的配置做个简单说明:
# 项目contextPath,一般在正式发布版本中,我们不配置
server.context-path=/myspringboot
# 错误页,指定发生错误时,跳转的URL。请查看BasicErrorController源码便知
server.error.path=/error
# 服务端口
server.port=8080
# session最大超时时间(分钟),默认为30
server.session-timeout=60
# 该服务绑定IP地址,启动服务器时如本机不是该IP地址则抛出异常启动失败,只有特殊需求的情况下才配置
# server.address=192.168.16.11

2、打包 Angular2 静态资源

修改 index.html 文件 
<base href="/taxminder_ui/" id="baseHref">
href 命名与即将打成的包名一致,然后 输入命令
ng build -prod
如果出现如下的error
ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in 'C:\Javadev\Project\Front\shawn_dev\taxminder_new_ui\src\main\webapp\angular_workspace\src'
@ ./src/main.ts 3:0-74
@ multi ./src/main.ts
是因为在打包过程中 angular2 默认开启了aot 优化方案, 只需将其关闭即可,使用如下命令,即可打包成功
ng build -prod -aot=false
生成的dist文件夹 为你的项目名。然后 重命名修改 

3、Springboot 集成 Angular2 静态资源

springboot 使用内嵌容器来提供服务,但是当我使用maven 打可执行jar时,其无法将静态文件(html/jsp)一并打入可执行文件解决:将静态资源 放在默认的配置 src/main/resources/META-INF/resources 下


4、Maven构建Spring Boot框架的可执行Jar包

在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar/war是可以直接启动的,不需要另外配置一个Web Server。单独的JAR包,然后通过
Java -jar <name>.jar
命令运行。
1.1 使用Spring Boot Maven插件SpringBoot包含一个Maven插件,它可以将项目打包成一个可执行jar。如果想使用它,你可以将该插件添加到<plugins>节
点处:<build>
<finalName>taxminder</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>这里要注意:finalName打成包后的包名,其余的是maven的打包需要的文件,这里配置就没问题了。其次是打包。



debug as -> maven build,第一次打包的话会弹出上面的框,在框中填入package 就可以了。



这样就表示打包可以了。



接下来就是运行了。//window 服务器下。java  -jar  (jar包的包名)cyc.jar 或者是双击,隔一会儿就可以运行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息