我们希望改进Java + JavaScript项目的构建配置/集成。
工作区配置非常简单 - 每个项目都在单独的目录中:
/workspace
/JavaBackend
/JsFrontend
问题是开发人员正在处理“Access-Control-Allow-Origin"浏览器中的消息,因为它们从前端运行AJAX查询(来自file://..../JSApp/build/index.hml),Java App服务器位于localhost:8080上。我们可以关闭浏览器安全性或修改标题以允许跨源请求,但我们认为如何实现这一目标并不好。
我们不希望在/ src / main / webapps /中的Java项目中拥有JS资源,因为生产环境应用程序将部署在不同的计算机上,并且每个应用程序都拥有它自己的构建服务器。
您是否有类似项目配置的经验?你会向我们推荐什么?
同时我们将尝试使用Tomcat 7来检查它是否可以例如在java app的上下文中提供外部静态资源(js stuff)
答案 0 :(得分:0)
出于开发目的,我希望Tomcat通过<Context>
标记在server.xml中包含前端文件夹。该文件夹可以是任意的,甚至可以在另一个存储库中(例如/GitRepos/ApplicationGui/app
)。
...
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>
<Context docBase="/workspace/JsFrontend" path="/"/>
<Context docBase="FlexibleOrders" path="/FlexibleOrders" reloadable="true" source="org.eclipse.jst.j2ee.server:FlexibleOrders"/>
</Host>
</Engine>
</Service>
</Server>
在制作中,我建议在前端制作Maven制品。然后可以通过后端中的依赖包含它,如下所示:
<dependency>
<groupId>org.enterprise</groupId>
<artifactId>application-gui</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
有关完整的制作配置,请参阅此博客:
http://wiki.switajski.de/2016/01/24/how-to-create-maven-artifact-with-static-web-resources.html