myeclipse搭建maven web工程
来源:互联网 发布:化妆基础知乎 编辑:程序博客网 时间:2024/06/05 11:36
最近利用myeclipse 搭建maven web工程时,使用IDE自动创建的目录结构,然后被狠狠的坑了一把,即maven 打包和IDE部署到tomcat 目录时没有把web.xml文件部署进去,下面演示整个过程:
第一步:利用IDE创建maven web 工程,操作步骤如下:
- File- > New -> Maven Project 弹出 New Maven Project 对话框,选择保存文件的位置后,点击 Next;
- 在maven 模型中,Filter:webapp,找到创建maven 创建web 工程的模型,即选择:maven-archetype-webapp,点击Next:
- 填写必要的信息,点击Finish:
- 有IDE以 maven-archetype-webapp 模型创建的maven web工程完成,其目录结构如下:
有源文件夹和测试文件夹,它们又分为代码文件夹和资源文件夹,如没有这些文件夹的话需要手动补全。
右击项目->Properties->MyEclipse->Deployment Assembly/Project Facets 查看项目的部署设置和项目属下,如下图:
但pom.xml 里面没有设置build 插件及对应的设置时,这个maven web 工程 是没有任何问题,可以在Tomcat中正常运行。
但当在pom.xml 中设置如下时:
<build> <finalName>yt-web-demo</finalName><sourceDirectory>src/main/java</sourceDirectory><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding><compilerArguments><verbose /><bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath></compilerArguments></configuration></plugin><plugin> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <warSourceDirectory>webapp</warSourceDirectory> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin></plugins><resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include><include>**/*.tld</include></includes><filtering>false</filtering></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include><include>**/*.tld</include></includes><filtering>false</filtering></resource></resources></build>
这里时一些maven web的基础设置,假如现在给这个工程加上基本的spring mvc设置,并设置一个controller,然后用myeclipse直接部署到tomcat 下面发现spring mvc controller 不能访问(404错误),接下来用maven build 这个工程,查看结果发现build 的结果中,WEB-INF目录下面没有web.xml文件,
这里清晰的看到build成功了,但是WEB-INF 下面只有classes 文件,于是我就去百度了下,发现有人遇到这样的问题,需要在build的maven-war-plugin 中指定web.xml的位置,于是我增加一个设置:
<plugin> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <warSourceDirectory>webapp</warSourceDirectory> <webXml>webapp/WEB-INF/web.xml</webXml> <failOnMissingWebXml>false</failOnMissingWebXml> </configura
这里我指定了web.xml 文件的位置,然后在用maven build, 发现build 失败了,其结果如下:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.[INFO] Scanning for projects...[INFO] [INFO] ------------------------------------------------------------------------[INFO] Building yt-web-demo Maven Webapp 0.0.1-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO] [INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ yt-web-demo ---[debug] execute contextualize[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent![INFO] Copying 0 resource[INFO] Copying 0 resource[INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ yt-web-demo ---[INFO] Nothing to compile - all classes are up to date[INFO] [INFO] --- maven-resources-plugin:2.5:testResources (default-testResources) @ yt-web-demo ---[debug] execute contextualize[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent![INFO] Copying 0 resource[INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ yt-web-demo ---[INFO] Nothing to compile - all classes are up to date[INFO] [INFO] --- maven-surefire-plugin:2.10:test (default-test) @ yt-web-demo ---[INFO] Surefire report directory: F:\dubbo-project\yt-web-demo\target\surefire-reports------------------------------------------------------- T E S T S-------------------------------------------------------Results :Tests run: 0, Failures: 0, Errors: 0, Skipped: 0[INFO] [INFO] --- maven-war-plugin:2.3:war (default-war) @ yt-web-demo ---[INFO] Packaging webapp[INFO] Assembling webapp [yt-web-demo] in [F:\dubbo-project\yt-web-demo\target\yt-web-demo][INFO] Processing war project[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 1.285s[INFO] Finished at: Mon Jul 31 09:18:06 CST 2017[INFO] Final Memory: 12M/216M[INFO] ------------------------------------------------------------------------[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.3:war (default-war) on project yt-web-demo: The specified web.xml file 'F:\dubbo-project\yt-web-demo\webapp\WEB-INF\web.xml' does not exist -> [Help 1][ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
这里说在工程下面没有web.xml文件,但是不是有啊,我看了下刚才在pom.xml中指定的web.xml 文件的位置,是:<webXml>webapp/WEB-INF/web.xml</webXml>,在对照项目web.xml文件的位置:src\main\webapp\WEB-INF\web.xml ,我擦,这个位置不对啊,于是我把整个webapp 剪切到项目根目录下:
然后build就成功了,在查看build 的文件:
这里可以看到WEB-INF 下面的web.xml 文件又出现了,把项目的war 包丢到tomcat 下面跑起来,可以看到spring mvc 正常运行了,问题解决。
阅读全文
0 0
- myeclipse搭建maven web工程
- Maven搭建Web工程
- maven搭建web工程
- Myeclipse从零开始搭建Maven工程
- MyEclipse Maven新建web工程
- myeclipse创建Maven工程及web工程
- myeclipse搭建maven web项目
- myeclipse搭建maven web项目
- Idea+maven+web工程搭建
- 使用maven搭建web工程
- MyEclipse + Maven开发Web工程的配置
- myeclipse+maven开发web工程详细配置
- MyEclipse + Maven开发Web工程的配置
- Myeclipse创建maven web工程及配置
- MyEclipse + Maven开发Web工程的配置
- Myeclipse创建maven web工程及配置
- MyEclipse 2014+maven搭建web项目
- 搭建maven——web工程
- [PAT乙级]1021. 个位数统计 (15)
- HihoCoder
- python多线程threading及锁机制
- Intellij IDEA 没办法创建java文件
- 【HDU】6053
- myeclipse搭建maven web工程
- PYTHON 一些基础面试题目总结
- html5移动端页面1px边框问题
- mapreduce执行过程详细讲解
- HDU 1040数组输出格式&简单排序
- linner入门
- Mac下安装与配置MySQL及常见问题
- Intellij IDEA的快捷键使用
- Nginx配置反向代理