一:问题

在用eclipse创建一个maven project (webApp)时,我们一般会要进行许多麻烦的配置,比如

1.更改Java jdk版本为1.7或1.8(默认1.5)

2.补全src/main/java, src/main/resources, src/test/java, src/test/resources, 这四个目录(默认只有src/main/resources)

3.更改Dynamic Web Project的版本为3.0或3.1 (默认2.3)

4.配置pom.xml文件(默认只有junit还是3.X)

二:解决

1.对于第一个问题可以在我们的用户配置settings.xml里配置下述代码,机器上的jdk是多少就写多少。

   <profile>
      <id>jdk-1.8</id>

      <activation>
      	<activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
      </activation>

      <properties>
     	 <maven.compiler.source>1.8</maven.compiler.source>
     	 <maven.compiler.target>1.8</maven.compiler.target>
     	 <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
  	  </properties> 

    </profile>

2.第二个问题博主没有想到太好的解决办法,网上有作者推荐了一种不太健全的方法,如下:

右击项目构建路径build path:

显而易见,这种方法为我们多建立了一个源文件夹,我们移除,然后增加没有的src/test/resources源文件夹。

三:创新

上面两种方法百度谷歌都是可以搜到一大堆的,对于后面两个问题,笔者百度了好久都没有找到,

网络上广为流传的解决方案,也都是新建项目后再在项目上进行更改,治标不治本。

于是笔者想到了修改maven底层文件更改默认配置的思路:

maven的底层文件这么多,我们如何得知该修改哪一个呢?看下面这幅图:

没错,我们的maven模板就来源于这个!然后我们在maven的本地仓库中搜索,找到了具有相同名称的jar包:

我们打开这个压缩包,查看到目录为:

打开pom.xml发现,这正是我们需要的默认模板。默认的模板排版既不简洁也缺少我们的默认servlet API和tomcat容器(或jetty),我们更改一下:

这样看起来是不是美观了,而且每次新建项目也不需要我们再重复再做相同的工作。

这样就解决了第四个问题,那第三个如何解决呢?简单!我们找到


web.xml,更改里面的默认代码为:



保存后,新建项目,我们发现默认的Dynamic Web Project的版本变成3.0,证明思路是可行的。

我们发现还有一个问题,就是display-name属性值是固定的,我们不用maven的时候都是和项目名称一模一样的,那我们如何配置?有办法!我们找到上面的pom.xml发现里面使用了EL表达式,

	<groupId>${groupId}</groupId>
	<artifactId>${artifactId}</artifactId>
	<version>${version}</version>
	<packaging>war</packaging>

我们可以尝试借鉴这段代码,在web.xml中使用!上图:


保存,新建项目!我们惊喜的发现项目名称已经实现自动配置,说明我们的思路是正确!

四:结束

工欲善其事必先利其器

如果觉得配置麻烦可以直接下载笔者配置好的jar包,直接替换使用

下载地址:点击打开链接

--------------------

转载复制请注明出处:http://blog.csdn.net/yueshutong123/article/details/79273036

探究如何永久更改Maven的Dynamic Web Project版本及pom.xml默认配置的更多相关文章

  1. Eclipse 使用maven创建Dynamic Web Project

    今天看到spring的官网首页已经没有下载连接了,建议使用maven构建spring项目.虽然maven已经不是新技术,但是这个我还没用过,谷歌走起! 通常创建项目都是用Eclipse,前几年还是My ...

  2. Eclipse使用Maven创建Dynamic Web Project

    1. 点击File->New->Other,在弹出的对话框中选择Maven->Maven Project: 2. 点击Next,选择maven-archetype-webapp: 3 ...

  3. eclipse没有(添加)"Dynamic Web Project"选项的方法【转载】

    第一种方法: 你安装的是专门开发java项目的,而Dynamic Web Project  属于J2EE技术,所以你要专门下载一个集成了J2EE插件的Eclipse,(eclipse-jee-heli ...

  4. eclipse没有(添加)"Dynamic Web Project"选项的方法

    建议使用代理lantern,否则可能要花很长时间显示和下载插件 http://www.dabu.info/eclipse-no-add-dynamic-web-project-option.html ...

  5. 如何在eclipse jee中创建Maven project并且转换为Dynamic web project

    如何在eclipse jee中创建Maven project并且转换为Dynamic web project 注意:该文档只针对以下eclipse版本,如图 为了方便,我将我本地的压缩包放在了微云网盘 ...

  6. (转)Dynamic Web project转成Maven项目

    本文转载自:http://my.oschina.net/twosnail/blog/369125 1.新建Dynamic Web Project 1.File -> New -> Othe ...

  7. git上导出的maven项目转成正常的Dynamic web project

    项目地址:http://git.oschina.net/jiafuwei0407/springmvc,springmvc maven项目 包含日志的测试 restful api 如何在eclipse ...

  8. 【project】【Maven】dynamic web module 3.1 requires 1.7

    Maven导入和新建java web 项目时可能报的错. 解决方案: 1.保证 在eclipse 构建 web中关于java版本有三处需要修改统一:  右击项目,选择“propertie”===> ...

  9. Mac 下 Eclipse 添加 Dynamic Web Project 并配置 Tomcat

    最近拿到了一个 Dynamic Web Project,我的 Mac 上的 Eclipse 之前没有过这类型的项目,所以导入之后无法正常运行.下面是我记录的如何配置 Eclipse 使之能够运行 Dy ...

随机推荐

  1. Android SurfaceView实现跟随手指移动的光标

    实例 public class DragSurfaceView extends SurfaceView implements SurfaceHolder.Callback,Runnable{ priv ...

  2. (后端)mybatis中使用Java8的日期LocalDate、LocalDateTime

    原文地址:https://blog.csdn.net/weixin_38553453/article/details/75050632 MyBatis的型处理器是属性“createdtime参数映射为 ...

  3. HDU 1162 Eddy's picture (最小生成树)(java版)

    Eddy's picture 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1162 ——每天在线,欢迎留言谈论. 题目大意: 给你N个点,求把这N个点 ...

  4. Struts2之action 之 感叹号 ! 动态方法调用

    struts2的动态方法调用的方式: 1.第一种方式:设置method属性 在Action类中定义一个签名与execute方法相同.只是名字不同的方法,如定义为: public String logi ...

  5. 对display主要属性的探究,以及vertical-aligin

    display 首先要简单说明一下display的主要3个主要属性,分别为block,inline-block,inline,这里只提及主要,关于其他的inherit,none等可以自行了解 inli ...

  6. java导出数据到excel里:直接导出和导出数据库数据

    一.直接导出 package com.ij34.util; import java.io.FileNotFoundException; import java.io.FileOutputStream; ...

  7. ASP.NET -- 一般处理程序ashx

    ASP.NET  --   一般处理程序ashx 如果在一个html页面向服务器端请求数据,可用ashx作为后台页面处理数据.ashx适合用作数据后台处理,相当于WebForm中的aspx.cs文件或 ...

  8. C语言 矩阵的转置及矩阵的乘法

    C语言 矩阵的转置及矩阵的乘法 //凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1.矩阵的转置 #include<stdio.h> #defi ...

  9. iOS弹出UIViewController小视图

    在TestViewController1中弹出TestViewController2 在TestViewController中点击按钮或者什么触发方法里面写入以下代码 TestViewControll ...

  10. Angular路由与多视图综合案例

    Ajax请求存在的几个问题 (1)Ajax请求不会留下History 记录,会导致浏览器后退按钮失效 (2)用户无法直接通过URL进入应用中的指定页面(保存书签.链接分享给朋友) (3)Ajax对SE ...