Java 在eclipse中开发maven web项目的困难
我通过命令行程序创建了一个maven web项目。我的EclipseIndigo中安装了Java 在eclipse中开发maven web项目的困难,java,eclipse,maven,Java,Eclipse,Maven,我通过命令行程序创建了一个maven web项目。我的EclipseIndigo中安装了m2e,WTP,tomcat插件。我通过m2e插件将项目导入eclipse。 我在我的mavensettings.xml节点中添加了这些 <server> <id>tomcatserver</id> <username>admin</username> <password>adminadmi
m2e
,WTP
,tomcat
插件。我通过m2e插件将项目导入eclipse。我在我的maven
settings.xml节点中添加了这些
<server>
<id>tomcatserver</id>
<username>admin</username>
<password>adminadmin</password>
</server>
在我的pom.xml
中
<tomcat-users>
<user name="admin" password="adminadmin" roles="admin-gui,manager-gui" />
</tomcat-users>
<build>
<finalName>FirstWebApp</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<server>tomcatserver</server>
<path>/FirstWebApp</path>
</configuration>
</plugin>
</plugins>
</build>
Maven自己建造了这个项目。现在出现了在服务器上运行的。当我运行应用程序时,它成功地运行了,但是index.jsp没有出现在我的web.xml的欢迎文件列表中
我的项目上出现了一个标有方框的红十字。当我单击Deployment Descriptor标题下的错误页面时,它显示:
Resource '/FirstWebApp/WebContent/WEB-INF/web.xml' does not exist.
实际上它并不存在,因为当我创建maven项目时,它就存在于
/src/main/webapp/WEB-INF/web.xml
它仍然存在于那里。my index.jsp也存在于webapp目录中。
问题出在哪里?现在我对maven web项目的目录结构完全感到困惑。
有人能给我解释一下我的网络项目的目录结构吗。这是:
->src
->main
resources
->webapp
index.jsp
->WEB-INF
web.xml
->target
-> it's sub-directories
->WebContent
->META-INF
->WEB-INF
lib
这让我头疼得厉害。请告诉我在eclipse中开发maven web项目的正确方法是什么
我应该把我的pojo、servlet和其他类放在这个结构的哪里
非常感谢EclipseWTP使用了与maven不同的文件系统布局约定。例如,WTP希望您的jsp页面和配置在WebContent中,这可以更改,但需要对许多不同的项目属性设置进行更改
解决此问题的最快方法是从使用m2e的eclispe中创建一个maven web项目,这样您将获得一个为maven和eclipse正确配置的wtp项目。然后,我会将您的代码复制到新项目的适当位置。任何你想放在web内容中的东西,只要你想放在src/main/webapp中,java代码就会放在src/main/java中。阅读maven目录约定是一个好主意
为了让maven和eclipse更好地发挥作用,您需要理解的基本概念是,eclipse和maven都将尝试负责您的项目配置,这将导致问题。因此,您希望使用maven作为maven可以设置的所有项目设置的源,例如,maven可以告诉eclipse项目是否是动态web模块,以及要使用的java编译器级别。。。因此,对于maven可以配置的设置,请使用maven。对于maven无法配置的设置,如eclipse源代码格式化程序,请使用eclipse项目属性来设置这些设置
WTP和maven之间的另一个大区别是,WTP希望您配置一个服务器,并且对于每个项目,它假设项目有一个目标运行时,这样就可以解决servlets api之类的问题。另一方面,Maven期望您的项目应该编译并构建独立于您将在其上运行的应用程序服务器,因此它期望您对Maven中心的api JAR(如servlet api、jsp api JAR等)建立依赖关系。。。等,并希望标记提供的范围。比如说
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<scope>provided</scope>
<version>2.2.1</version>
</dependency>
javax.servlet.jsp
javax.servlet.jsp-api
假如
2.2.1
EclipseWTP使用与maven不同的文件系统布局约定。例如,WTP希望您的jsp页面和配置在WebContent中,这可以更改,但需要对许多不同的项目属性设置进行更改
解决此问题的最快方法是从使用m2e的eclispe中创建一个maven web项目,这样您将获得一个为maven和eclipse正确配置的wtp项目。然后,我会将您的代码复制到新项目的适当位置。任何你想放在web内容中的东西,只要你想放在src/main/webapp中,java代码就会放在src/main/java中。阅读maven目录约定是一个好主意
为了让maven和eclipse更好地发挥作用,您需要理解的基本概念是,eclipse和maven都将尝试负责您的项目配置,这将导致问题。因此,您希望使用maven作为maven可以设置的所有项目设置的源,例如,maven可以告诉eclipse项目是否是动态web模块,以及要使用的java编译器级别。。。因此,对于maven可以配置的设置,请使用maven。对于maven无法配置的设置,如eclipse源代码格式化程序,请使用eclipse项目属性来设置这些设置
WTP和maven之间的另一个大区别是,WTP希望您配置一个服务器,并且对于每个项目,它假设项目有一个目标运行时,这样就可以解决servlets api之类的问题。另一方面,Maven期望您的项目应该编译并构建独立于您将在其上运行的应用程序服务器,因此它期望您对Maven中心的api JAR(如servlet api、jsp api JAR等)建立依赖关系。。。等,并希望标记提供的范围。比如说
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<scope>provided</scope>
<version>2.2.1</version>
</dependency>
javax.servlet.jsp
javax.servlet.jsp-api
假如
2.2.1
如果您使用的是较新的Eclipse版本(Indigo或Juno),您可能还应该安装m2e wtp
插件。它将连接Maven配置和WTP期望项目布局的方式
这个问题看起来与您试图做的类似,它更详细地解释了如何设置项目结构:如果您使用的是最新的Eclipse版本(Indigo或Juno),您可能还应该安装m2e wtp
插件。它将在两个地方之间架起一座桥梁