我处于 java 项目的初始阶段(带有 maven 的 jsp/servlet 项目)。这是一个多模块项目。我正在使用 Maven。现在说有3个模块。
模型、控制器和 Web 模块。
model
需要 mysql lib
controller
使用model
、扩展和使用模型的类
web
需要controller
和model
两个模块。
我已将 mysql 添加到模型的依赖项中,将模型添加到controller
模块的依赖项中,并controller
添加到模块的依赖项中web
。(我是否需要将模块添加model
到模块的依赖项web
?)
我如何/应该如何配置这些模块的依赖范围?
编辑:结构
Root
|
|---Model *dependencies:mysqllib/compile*
|
|---Controller *dependencies:Model/compile*
|
|---Web *dependencies:Controller/compile*
所有都设置为complie
范围。
我在 web 模块中有一个 .jsp 文件(这是默认的 jsp),
这个 jsp 调用Account.getAccount()
控制器模块内的类的静态方法。
JSP代码
<%=xy.controller.Account.getAccount()%>
在浏览器中打开上面的jsp文件时,我在浏览器
错误堆栈中得到以下异常
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 8 in the jsp file: /index.jsp
xy.controller.AccountH cannot be resolved to a type
5: <title></title>
6: </head>
7: <body>
8: <%=xy.controller.Account.getAccount()%>
9: </body>
10: </html>
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
pom 文件中的依赖关系
- 控制器 - pom
<dependency>
<groupId>xy</groupId>
<artifactId>model</artifactId>
<version>0.0.1</version>
<scope>compile</scope>
</dependency>
- 网络 - pom
<dependency> <groupId>xy</groupId> <artifactId>controller</artifactId> <version>0.0.1</version> <scope>compile</scope> </dependency>