我是J2EE的新手,我无法理解在构建java web项目时创建的目录结构。经过一段谷歌搜索后,我明白了我们在WEB-INF中存储的内容
1)我无法理解我们在META-INF中存储的内容?
2)如何创建目标文件夹?
3)我们在哪里提到所有文件应该放在目标文件夹中?
我正在使用Maven来构建一个基于Spring-hibernate的项目。
提前致谢
答案 0 :(得分:4)
1)What's the purpose of META-INF?
2)Maven为您创建目标文件夹。这是所有Maven插件默认转储其工作的地方。
3)Maven有从中排除文件的机制。
理解Maven的关键是Maven使用约定。这意味着如果根据Maven的期望构建项目,Maven将会很好地完成很多事情。例如,这就是您如何区分源目录中的Java类和资源:
src/main/java/com/mycompany/MyObj.java
src/main/resources/my/company/spring.context.xml
src/test/java/com/mycompany/MyObjTest.java
src/test/resources/my/company/spring.context.xml
运行mvn test
时,它将编译所有这些,将其适当地移动到目标文件夹,加载JUnit运行器并为您提供一个类路径,使Spring可以轻松访问测试下的spring上下文夹。它将运行测试并将报告放在目标之下。
Maven不像Ant。在Ant中,你必须告诉它一切。 Maven在另一端工作,默认情况下它会假设一切,直到你告诉它。
答案 1 :(得分:2)
这是一个常见的问题,因为java已经变得如此之大。通常很难分辨出一种技术的结束和另一种技术的开始。您需要熟悉所使用的所有各种组件的文档。
例如,如果你有一个'target'文件夹,那么我假设你正在使用maven。 Maven是一个用于依赖管理的java实用程序。当你“复制”一个项目时,你同意遵守一系列标准,而maven反过来为你做了很多繁重的工作(编译代码,查找依赖库和运行测试)。 maven所做的部分工作是在这种情况下创建标准的maven目录'target'
更多maven信息 - http://maven.apache.org/
至于META-INF,这是Java EE规范的一部分。它确实有关于打包和部署的目的,但您通常不会发现自己经常使用它。它与maven的原理基本相同。您遵守Java EE标准,Java EE兼容工具为您完成大部分工作。
有关详细信息,请查看此链接 - http://java.sun.com/blueprints/guidelines/designing_enterprise_applications/packaging_deployment/index.html
一般来说,要了解这些,您应该查看一些关于Java EE的教程,并参考容器的示例和文档。
答案 2 :(得分:0)
1)What is the purpose of the META-INF
2-3)目标文件夹创建Maven,它管理所有依赖项等:one,two