【问题标题】:Spring + Hibernate + Angular + Maven + Tomcat Project folder structure issuesSpring + Hibernate + Angular + Maven + Tomcat 项目文件夹结构问题
【发布时间】:2017-11-24 22:49:28
【问题描述】:

好的,所以我整天都在努力解决这个问题。我的老板给了我一个新任务:拿这个模板:https://github.com/DavidKk/ngAdmin,弄清楚 AngularJS 是如何工作的,弄清楚 Spring 是如何工作的,Hibernate 是如何工作的,Maven 如何在项目构建、测试等中工作,实现一个基本的 CRUD 示例在 MySQL 数据库上的该模板中,部署在 Tomcat 上。

所以,首先,这是一大堆东西,我从未使用过的东西,可能使用 Hibernate 和 JPA,他希望在本周末之前整理好所有这些东西,什么时候我们会和客户讨论更多的项目,所以我们可以告诉他我们将在开发过程中采取什么方法。

看了一下Spring,用Spring Initializr:https://start.spring.io/做一个基础项目,用jar命令工具做一个WAR文件,部署到tomcat上,果然成功了。我使用了这两个,因为 IntelliJ 社区没有实现这些,除非你为 Ultimate 版付费。

我查看了这个 CRUD 示例:http://www.concretepage.com/spring-4/spring-mvc-4-rest-angularjs-hibernate-4-integration-crud-tutorial-with-ngresource-example,并使其工作,并了解了 Spring 如何使用依赖注入、Hibernate 如何将对象持久保存到数据库中,以及 AngularJS 如何提供我的客户所拥有的单页布局要求。

现在,我的问题是,这个模板有一个完全不同的目录结构,如果我移动文件,什么都不起作用。从头开始不是一种选择,我们采用前端模板,稍微修改一下,为客户端和服务器开发后端的东西。我不明白的是,我怎么能将它与具有完全不同目录结构的 Spring 或 Tomcat 一起使用,它也需要不同的东西,否则它会给我一个 404。据我所见,这个项目有是用 Grunt 构建的,所以我不知道是否有任何方法可以从 Grunt 转到 Maven,并且它仍然可以工作。我真的不知道该怎么办,我必须在本周末之前完成这个。任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 这个问题范围很广,请缩小到一些可识别的问题。

标签: angularjs spring hibernate maven tomcat


【解决方案1】:

您展示的模板仅供前端使用。

使用 spring 初始化器创建一个项目。

您将拥有 {directory}/src/main/java 和其他内容。 创建{目录}/client/ 把 ngAdmin 的东西放进去。

ngAdmin 使用 grunt 构建客户端,并在 dest 目录中生成站点。这将是 {directory}/client/dest/

配置 maven-frontend-plugin 以安装 js 东西并在使用 maven 构建时运行 grunt。

添加 maven-resource-plugin 配置以从 {directory}/client/dest/ 复制到 ${project.build.directory}/client

配置 maven war 插件以包含该目录

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <attachClasses>true</attachClasses>
        <webResources>
            <resource>
                <directory>${project.build.directory}/client</directory>
            </resource>
        </webResources>
    </configuration>
</plugin>

这样,当你构建war时,客户端应该在里面(解压war并检查)

然后你将有一些配置告诉 spring-mvc 在哪里找到它们,但我手头没有。

希望对您有所帮助。

【讨论】:

  • Grunt 任务运行器似乎只与终极版捆绑在一起。这是真的,还是我可以把它作为插件放在 pom.xml 中并让它运行?抱歉,我只使用了 2 天的 intelliJ,这对我来说似乎很困惑,来自 eclipse。
  • 老实说,不知道如何从 intellij 内部运行 grunt。我说的是 maven-frontend-plugin,一个 maven 插件,用于在 maven 构建中运行 js 构建工具,例如 grunt。有了它,您可以通过 maven 项目窗口从 intellij 内部运行它。
  • 这就是我一直在尝试做的。我从 github 页面上提供的示例中添加了 pom.xml 元素以在本地下载节点 npm 包,我对其进行了配置并从那里运行它们,但是我遇到了很多与插件相关或与 IDE 相关的错误,我可能重新开始吧。
猜你喜欢
  • 2010-10-01
  • 2017-06-16
  • 2023-03-29
  • 1970-01-01
  • 2019-02-15
  • 2013-06-01
  • 2016-10-11
  • 2014-03-08
  • 1970-01-01
相关资源
最近更新 更多