当我们构建一个java web项目时会发生什么

时间:2011-06-10 13:18:34

标签: java maven target directory-structure web-project

我是J2EE的新手,我无法理解在构建java web项目时创建的目录结构。经过一段谷歌搜索后,我明白了我们在WEB-INF中存储的内容 1)我无法理解我们在META-INF中存储的内容? 2)如何创建目标文件夹?
3)我们在哪里提到所有文件应该放在目标文件夹中?

我正在使用Maven来构建一个基于Spring-hibernate的项目。

提前致谢

3 个答案:

答案 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,它管理所有依赖项等:onetwo