maven优势于Ant的原因有很大一部分来自于maven减少了手动的配置,这也导致了他结构的特殊。

maven遵循约定大于配置,默认目录为:

目录src/main/java java源码目录
目录src/main/resources 资源文件目录
目录src/test/java 测试java源码目录
目录src/test/resources 测试资源文件目录
目录target 打包输出目录
目录target/classes 编译输出目录
目录target/test-classes 测试编译输出目录
目录target/site 项目site输出目录
目录src/main/webapp web应用文件目录(当打包为war时),如WEB-INF/web.xml
jar 默认打包格式
*Test.java Maven只会自动运行符合该命名规则的测试类
%user_home%/.m2 Maven默认的本地仓库目录位置
中央仓库 Maven默认使用远程中央仓库:http://repo1.maven.org/maven2
1.3 Maven Compiler插件默认以1.3编译,因此需要额外配置支持1.5

但它也支持对约定目录的自定义更改,通常不建议更改maven默认目录,这将导致maven不能正常处理对应的逻辑,例如:

<build>  <sourceDirectory>src/java</sourceDirectory>  <testSourceDirectory>src/test</testSourceDirectory>  <outputDirectory>output/classes</outputDirectory>  <testOutputDirectory>output/test-classes</testOutputDirectory>  <directory>target/jar</directory>
</build> 

上诉代码将java源代码存放在了src/java中,test源代码存放在了src/test中,将编译后的java文件放在了out/classes中,编译后的测试文件放在了output/test-classes中,运行后的打包文件存放在target/jar中。

通常情况下我们会修改webapp目录为WebContent目录,需做如下配置:

<build><finalName>ThesisManage</finalName><!-- 自定义maven结构目录 --><sourceDirectory>src/main/java</sourceDirectory><resources><resource><directory>src/main/resources</directory></resource></resources><testResources><testResource><directory>src/test/resources</directory></testResource></testResources><plugins><!-- 定义编译版本为1.7,字符编码为utf8 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>2.0.2</version><configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding></configuration></plugin><!-- 修改webapp目录为WebContent --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><configuration><!-- 设置WebContent目录为Web目录 --><webappDirectory>${basedir}/WebContent</webappDirectory><warSourceDirectory>${basedir}/WebContent</warSourceDirectory></configuration></plugin></plugins>
</build>

其中<webappDirectory>:产生war前,用于存放war的目录

<warSourceDirectory>:将web项目做成eclipse下的WTP类型,即是用WebContent替换webapp

另外:<packagingExcludes>、<warSourceExcludes>都可以用来忽略打war时的部分包的,如:

<packagingExcludes>WEB-INF/lib/spring-2.5.**.jar,WEB-INF/lib/jersey-servlet-1.17.1.jar
</packagingExcludes>

上面表示在打war包时忽略spring-2.5的包和jersey-servlet-1.17.1.jar

注意:当修改maven的结构为WebContent代替webapp后,部署项目的时候应该使用外部发布模式。因为maven默认是在webapp/WEB-INF下查找applicationContext.xml配置文件,所以应该手动指定它的查找目录。

如:

maven自定义目录相关推荐

  1. lib目录和maven dependency目录的jar包冲突

    用eclipse时新建项目时,会在lib目录下自动生成一些jar包,然后又在pom.xml文件中添加了依赖,导致lib下的jar包和maven dependency目录下的jar包产生了冲突.刚开始r ...

  2. linux 自定义目录,linux – cron命令的自定义目录

    我在Debian / Ubuntu上使用vixie cron.如何设置cron要读取的自定义目录?我想引导crontab运行在一系列文件中找到的命令,例如 /home/cron/*.cron 或完美 ...

  3. Maven-学习笔记03【基础-Maven标准目录结构和常用命令】

    Java后端 学习路线 笔记汇总表[黑马程序员] 黑马程序员(腾讯微云)Maven基础讲义.pdf Maven-学习笔记01[基础-Maven基本概念] Maven-学习笔记02[基础-Maven的安 ...

  4. 【Java】Maven工程目录下ImageIcon读图片失败爆空指针的解决方案

    随便写个Swing小程序,遇到了一个尴尬的问题,如题--这里分享一下解决问题的过程和结论,希望对读者有所帮助. 使用window-builder选择icon,生成这样的路径,运行可显示: 但是这种路径 ...

  5. word根据目录切块php,PHP导出Word文档如何自定义目录?

    PHP导出Word文档如何自定义目录? 2018-09-19 class word { function start() { ob_start(); } function save($path) { ...

  6. python自定义安装哪些不需要_python setup.py配置,用于在自定义目录中安装文件

    我想创建一个setup.py,将我的文件安装到自定义目录中.我有一个特定的前缀,在这里我想得到以下结果:/my/prefix/ bin/ script.sh libexec/ one.py two.p ...

  7. maven自定义依赖并推送到远程仓库

    文章目录 前言 一.maven配置 二.项目准备及修改配置 三.推送到maven仓库 总结 前言 本教程是在 IDEA 开发工具下操作的 一.maven配置 我们目的是将自己编写的项目,通过 mave ...

  8. 那些年我失败的当让我依然热血沸腾的创业项目之快递到家这里写自定义目录标题

    那些年我失败的当让我依然热血沸腾的创业项目之快递到家这里写自定义目录标题 上一篇我聊的是智慧运动场的项目.这依然是一个好项目,能给广大运动爱好者带来新体验的好项目.我相信每一个足球爱好者,心中的梦想是 ...

  9. uniapp下载文件保存自定义目录

    uniapp文件操作依赖IO模块,网上很多小白都不知道怎么下载文件到手机自定义目录, 看官方文档下载文件永久保存uni.downloadFile和uni.saveFile,文件存放的位置开始时临时的, ...

最新文章

  1. $(function(){})、$(document).ready(function(){})....../ ready和onload的区别
  2. python字符串常量_python教程---字符串常量ascii_letters、punctuation、digits、whitespace等...
  3. R语言ggplot2可视化小提琴图(violin plot)并使用ggsignif添加分组显著性(significance)标签
  4. 中国男人何时回归家庭?(转)
  5. ubuntu 虚拟机安装
  6. Pretty girl,你一定要去旅行
  7. 第24周维生素市场最新动态
  8. java class object_[java]Class类和Object类的关系
  9. 【BZOJ】3495: PA2010 Riddle 2-SAT算法
  10. cv mat保存图片_EmguCV创建/保存图片
  11. 凸函数与简森不等式(Jensen's inequality)
  12. sql server 运维时CPU,内存,操作系统等信息查询(用sql语句)
  13. MySQL的备份与还原
  14. python点云可视化
  15. 计算机音乐专业学什么软件有哪些内容,电脑音乐入门装备(软件篇)
  16. 鼠标双击成了查看属性是怎么回事?怎样解决?
  17. 阿里云域名配置以及https证书(ssl证书)配置
  18. 【测试专场沙龙报名】千万级日活App的质量保证
  19. 开机提示小娜无法在本计算机运行,解决Win10正式版开始菜单与小娜打不开问题的三种方法...
  20. 【Hawk】高级教程——post参数采集万方医学网论文

热门文章

  1. 自动化运营Twitter,推特大V养成实用工具
  2. select获取选中的值
  3. twisted的一些代码
  4. PostGreSQL教程_postgis教程
  5. LocalDate和LocalTime的用法介绍
  6. 【解决方法】ubuntu环境sudo安装时出现“XXX不在soduers中”,且su root 认证失败无法进入root,且sudo passwd root 时又不能使用sudo
  7. STMTrack: Template-free Visual Tracking with Space-time Memory Networks(STMTrack: 基于时空记忆网络的无模板视觉跟踪)
  8. TCP连接的三次握手四次挥手——类比异地恋情侣开始交往和分手(通俗易懂)
  9. android 动态设置布局LayoutParams
  10. 购物车与商城订单的关系以及技术实现深入分析