我希望这是一个有效的问题。通过互联网搜索后,我找不到一个好的解决方案。
我正在使用Angular 4 + Spring启动与STS(Eclipse)开发应用程序。我正在使用maven。每当我改变角度时,我都必须做“构建”。我的例外是如果我改变角度的任何东西,它应该反映在网页中而不做“ng build”。
这是我的文件夹结构:
在下面的路径中,在命令提示符下,我每次在java中更改任何内容时执行命令:“mvn clean isntall”:
在下面的路径中,在命令提示符下,我正在执行命令:“ng build”每次我以角度改变任何东西
我试过“ng serve”,但它没有用,这意味着mvn clean成功了,但是在浏览器加载时我看不到页面。
答案 0 :(得分:1)
你试过下面的命令
ng serve --proxy-config proxy-conf.json -o
请记住,您需要在项目中使用proxy-conf.json。它应该在package.json所在的目录中。然后运行localhost:4200
{
"/api": {
"target": "http://localhost:8080",
"secure": false
}
}
答案 1 :(得分:0)
也许考虑在Spring项目之外单独运行Angular 4项目。当你想部署/发布时,你只需将Angular文件放到Spring项目中。
我的设置例如: Angular 4运行:本地4200。 春天继续:8080本地。
当我需要部署新版本时,我只需将压缩的角度文件放到Spring项目文件夹中,然后使用Maven创建War文件。
答案 2 :(得分:0)
对于开发,您可以在角度应用程序目录中使用ng serve
并单独启动后端。 ng serve
会自动检测Angular文件中的更改,重建并提供新内容。
对于最终的完整部署,您可以使用maven并将所有内容构建为一个war
。在您的pom中,您还可以为ng build
定义一个插件,并将一个插件用于将Angular应用程序的dist目录复制到正确的位置。 " dist"目录包含您的构建Android应用程序(js文件等)。
答案 3 :(得分:0)
我可以通过使用" ng serve"运行Angular来实现。和java使用" mvn clean install"。不得不做很多改变。变化是:
1)在application.properties中,我添加了
security.ignored=/**
2)WebSecurityConfiguration.java
//.antMatchers(HttpMethod.GET, "/resources/**", "/assets/**", "/css/**", "/js/**", "/fonts/**") -> Commented this line
.antMatchers("/**")
. . .
. . .
. . .
http.cors();
3)通过附加{{3}}更改了所有REST呼叫。例如,如果它是
this.http
.get('api/inspection')
现在是:
this.http
.get('http://localhost:8080/api/inspection')
我仍在寻找更好的解决方案。这意味着至少我不必更改REST调用。我应该得到(' api / inspection')。我想使用某种拦截器为我添加localhost:800。