eclipse创建maven工程选择maven-archetype-webapp后报错。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eclipse创建maven工程选择maven-archetype-webapp后报错。相关的知识,希望对你有一定的参考价值。

Unable to create project from archetype [org.apache.maven.archetypes:maven-archetype-webapp:RELEASE]The desired archetype does not exist (org.apache.maven.archetypes:maven-archetype-webapp:1.0)

这个报错是说你的org.apache.maven.archetypes:maven-archetype-webapp:RELEASE不存在,这个实际是你创建maven project的时候下载maven-archetype-webapp文件夹中的文件失败,你可以从eclipse中-->window-->Preferences-->Maven-->User Settings查看Local Repository路径(这个就是你settings.xml文件中自定义的仓库路径),找到并在我的电脑中打开该路径(这里我假设是E:\studyMaven\repo),删除掉该仓库下的org\apache\maven文件夹(E:\studyMaven\repo\org\apache\maven),总之删除掉它再重新从eclipse中新建maven project,eclipse就会重新去下载该maven-archetype-webapp! 参考技术A 我也遇到过这个问题,求解

Maven用eclipse创建web工程

步骤:

第一步:打开Eclipse,点击菜单【File】【New】【Other】

               找到目录Maven,选择Maven Project,点击【Next】

技术图片

第二步:点击【Next】

技术图片

第三步:

选择一个Archetype。这里创建Web工程,选择maven-archetype-webapp 版本1.0,点击【Next】

技术图片

第四步:填写完Group Id和Artifact Id后,点击【Finish】

技术图片

   将生成一个maven web项目

随后将创建工程。工程结构如下:

技术图片

 

解决问题


创建后,报几个问题。

这样解决,打开pom.xml,添加以下东东。

1、添加插件

 1 <plugin>
 2     <groupId>org.apache.maven.plugins</groupId>
 3     <artifactId>maven-war-plugin</artifactId>
 4     <version>2.6</version>
 5     <configuration>
 6         <failOnMissingWebXml>false</failOnMissingWebXml>
 7     </configuration>
 8 </plugin>
 9 <plugin>
10     <groupId>org.apache.maven.plugins</groupId>
11     <artifactId>maven-compiler-plugin</artifactId>
12     <version>3.1</version>
13     <configuration>
14         <source>1.8</source>
15         <target>1.8</target>
16     </configuration>
17 </plugin>

2、添加serlvet依赖

 1 <dependency>
 2     <groupId>javax.servlet</groupId>
 3     <artifactId>javax.servlet-api</artifactId>
 4     <version>3.1.0</version>
 5 </dependency>
 6 <dependency>
 7     <groupId>javax.servlet.jsp</groupId>
 8     <artifactId>javax.servlet.jsp-api</artifactId>
 9     <version>2.3.1</version>
10 </dependency>
11 <dependency>
12     <groupId>javax.servlet</groupId>
13     <artifactId>jstl</artifactId>
14     <version>1.2</version>
15 </dependency>

完整的pom.xml

 1 <project xmlns="http://maven.apache.org/POM/4.0.0"
 2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5     <groupId>com.liyongzhen</groupId>
 6     <artifactId>myweb</artifactId>
 7     <packaging>war</packaging>
 8     <version>0.0.1-SNAPSHOT</version>
 9     <name>myweb Maven Webapp</name>
10     <url>http://maven.apache.org</url>
11     <dependencies>
12         <dependency>
13             <groupId>javax.servlet</groupId>
14             <artifactId>javax.servlet-api</artifactId>
15             <version>3.1.0</version>
16         </dependency>
17         <dependency>
18             <groupId>javax.servlet.jsp</groupId>
19             <artifactId>javax.servlet.jsp-api</artifactId>
20             <version>2.3.1</version>
21         </dependency>
22         <dependency>
23             <groupId>javax.servlet</groupId>
24             <artifactId>jstl</artifactId>
25             <version>1.2</version>
26         </dependency>
27         <dependency>
28             <groupId>junit</groupId>
29             <artifactId>junit</artifactId>
30             <version>3.8.1</version>
31             <scope>test</scope>
32         </dependency>
33     </dependencies>
34     <build>
35         <finalName>myweb</finalName>
36         <plugins>
37             <plugin>
38                 <groupId>org.apache.maven.plugins</groupId>
39                 <artifactId>maven-war-plugin</artifactId>
40                 <version>2.6</version>
41                 <configuration>
42                     <failOnMissingWebXml>false</failOnMissingWebXml>
43                 </configuration>
44             </plugin>
45             <plugin>
46                 <groupId>org.apache.maven.plugins</groupId>
47                 <artifactId>maven-compiler-plugin</artifactId>
48                 <version>3.1</version>
49                 <configuration>
50                     <source>1.8</source>
51                     <target>1.8</target>
52                 </configuration>
53             </plugin>
54         </plugins>
55     </build>
56 </project>

3、更新这个工程

技术图片

右击工程名,在弹出的菜单中选择【Maven】【Upadte Project】

技术图片

点击【OK】

到此项目创建完成,可以运行。

技术图片

右击工程名,在弹出的菜单中选择【Run As】【Run on Server】

技术图片

点击【Next】

技术图片

最后点击【Finish】

运行效果

技术图片


调整Servlet版本

当前主流Servlet开发或者说主流Java Web开发,Servlet的版本是3.1。(Servlet 4.0还未被大量采用)。

我们在添加依赖时,Servlet版本也是3.1,而maven工程创建时Servlet是2.3

技术图片

 

右击工程名,在弹出的菜单中选择【Properties】

技术图片

弹出对话框,选择【Project Facets】

技术图片

找到 Dynamice Web Module,去掉前面勾选

技术图片

将Serlvet版本更改为3.1,再点击【Apply】

技术图片

再将Dynamice Web Module勾选上去。

技术图片

最后点击【Apply and Close】

再看,更新过来。

技术图片


如果有web.xml,可能是这样的

1 <!DOCTYPE web-app PUBLIC
2  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
3  "http://java.sun.com/dtd/web-app_2_3.dtd" >
4  
5 <web-app>
6   <display-name>Archetype Created Web Application</display-name>
7 </web-app>

 

这是Servlet2.3。需要换成Servlet3.1命名空间。

下面是Servlet3.1命名空间。将web.xml改成下面一样的命名空间。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3 xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
 5 id="WebApp_ID" version="3.1">
 6   <display-name>myweb</display-name>
 7   <welcome-file-list>
 8     <welcome-file>index.jsp</welcome-file>
 9   </welcome-file-list>
10 </web-app>

 

以上是关于eclipse创建maven工程选择maven-archetype-webapp后报错。的主要内容,如果未能解决你的问题,请参考以下文章

eclipse+maven搭建web工程之创建

Maven用eclipse创建web工程

如何使用eclipse创建Maven工程及其子模块

eclipse中怎么创建maven web project

MAVEN ECLIPSE JAR工程

基于eclipse+maven创建web工程