1.标准目录结构:css
src -main –bin 脚本库 –java java源代码文件 –resources 资源库,会自动复制到classes目录里 –filters 资源过滤文件 –assembly 组件的描述配置(如何打包) –config 配置文件 –webapp web应用的目录。WEB-INF、css、js等 -test –java 单元测试java源代码文件 –resources 测试须要用的资源库 –filters 测试资源过滤库 -site Site(一些文档) target LICENSE.txt Project’s license README.txt Project’s readmejava
工程根目录下就只有src和target两个目录web
target是有存放项目构建后的文件和目录,jar包、war包、编译的class文件等。app
target里的全部内容都是maven构建的时候生成的 参照:http://breath.iteye.com/blog/1005447 ++++++++++++++++++++++++++++++++++++++++++++ Maven项目的标准目录介绍webapp
Maven提倡使用一个共同的标准目录结构,使开发人员能在熟悉了一个Maven工程后,对其余的Maven工程也能清晰了解。这样作也省去了不少设置的麻烦。 如下的文档介绍是Maven但愿的目录结构,而且也是目录建立工程是采用的目录结构。Maven推荐你们尽量的遵照这样的目录结构。maven
src/main/java Application/Library sources src/main/resources Application/Library resources src/main/filters Resource filter files src/main/assembly Assembly descriptors src/main/config Configuration files src/main/webapps Web application sources src/test/java Test sources src/test/resources Test resources src/test/filters Test resource filter files src/site Site LICENSE.txt Project's license README.txt Project's readme 在顶级目录上是工程的描述文件pom.xml(若是使用Ant则还包括其余属性文件,maven.xml或build.xml),另外还包括提供给最终用户的文件,如,README.txt, LICENSE.txt等等。 顶级目录还包括两个子目录:src,target。顶级目录下可能出现的其余目录仅仅是CVS或.svn和其余多模块工程的工程目录,最好不要再有其余目录。 Target目录是全部工程编译构建的输出目录。 Src目录包含全部工程的源码文件,配置文件,资源文件等等。它下面的子目录通常包含main(主要的工程源文件),test(测试文件),site(项目站点文件)。svn
项目构建的生命周期的介绍post
Maven 2是围绕着构建生命周期概念设计的。这意味着,构建或者发布的过程已经被清晰的定义了。 当咱们使用Maven构建工程时,咱们只须要了解几个Maven定义好的命令便可,其余的工做则交给POM来完成。 如下给出Maven提供的构建生命周期列表: validate validate the project is correct and all necessary information is available. generate-sources generate any source code for inclusion in compilation. process-sources process the source code, for example to filter any values. generate-resources generate resources for inclusion in the package. process-resources copy and process the resources into the destination directory, ready for packaging. compile compile the source code of the project. process-classes post-process the generated files from compilation, for example to do bytecode enhancement on Java classes. generate-test-sources generate any test source code for inclusion in compilation. process-test-sources process the test source code, for example to filter any values. generate-test-resources create resources for testing. process-test-resources copy and process the resources into the test destination directory. test-compile compile the test source code into the test destination directory test run tests using a suitable unit testing framework. These tests should not require the code be packaged or deployed. package take the compiled code and package it in its distributable format, such as a JAR. pre-integration-test perform actions required before integration tests are executed. This may involve things such as setting up the required environment. integration-test process and deploy the package if necessary into an environment where integration tests can be run. post-integration-test perform actions required after integration tests have been executed. This may including cleaning up the environment. verify run any checks to verify the package is valid and meets quality criteria. install install the package into the local repository, for use as a dependency in other projects locally. deploy done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects. 所以,当咱们构建一个项目时,只须要了解本身但愿作什么,而后执行以上对应的生命周期便可。 例如,咱们但愿编译咱们的工程。在命令行状态下进入到工程的pom.xml文件所在的目录中,使用命令:mvn compile;但愿构建打包咱们的工程,使用mvn package便可。 固然了,maven的构建生命周期也是能够扩展和自定义的,这里就先不作介绍了。单元测试