使用Maven管理项目(2)--创建Web App Project

本文详细介绍了如何使用 Maven 创建并配置 WebApp 工程,包括新建工程、修改 Tomcat 属性、配置 Maven 设置、添加调试配置以及最终运行和部署的过程。重点在于通过配置使得 WebApp 能够成功运行于 Tomcat 环境中。

上一篇我们讲了如何创建一个简单的控制台程序,下面我们需要进入我们日常开发的环节:Web App。


新建工程

  1. 这里我们仍然新建一个Maven Project;
  2. 我们的Archetype中选择maven-archetype-webapp;
  3. 对工程添加src/main/java、src/test/java、src/test/resources目录;
  4. 在工程的Build Path中,将src/main/java、src/main/resources、src/test/java、src/test/resources全部添加为源代码目录,并且将这几个源码的输出路径修改为:src/main/webapp/WEB-INF/classes;

  5. 调整Order and Export,调整一下顺序;

尝试运行

修改tomcat

  1. 需要修改Tomcat属性,所以我们去Tomcat/conf/tomcat-users.xml文件,修改:
    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
    <role rolename="manager" />
    <role rolename="manager-gui" />
    <role rolename="admin" />
    <role rolename="admin-gui" />
    <user username="tomcat" password="123456" roles="admin-gui,admin,manager-gui,manager" />
    </tomcat-users>
    注意在windows中的tomcat 7中,我这里需要添加的role还包括:manager-jmx,manager-status,否则maven在运行的时候会报403错误。
  2. 启动tomcat,去浏览器中查看http://localhost:8080/manager/html
  3. 能够用配置的tomcat账号登陆进入管理,即可认为配置结束。

修改Maven配置

  1. 修改默认的Maven配置,主要在这里(settings.xml),配置你在maven中用的测试账号id,这样可以不用每个工程都去配置一次:

  <servers>
    <server>
      <id>test</id>
      <username>tomcat</username>
      <password>123456</password>
    </server>
  </servers>

修改工程配置

  1. 添加一个Maven Debug配置,选择Base directory为工程目录;
  2. Goals选择tomcat7:redeploy;
  3. 修改pom.xml文件,在project节点下添加repositories和pluginRepositories:
    <repositories>
    		<repository>
    			<id>apache.snapshots</id>
    			<url>https://repository.apache.org/content/repositories/snapshots</url>
    			<releases>
    				<enabled>false</enabled>
    			</releases>
    			<snapshots>
    				<enabled>true</enabled>
    			</snapshots>
    		</repository>
    	</repositories>
    	<pluginRepositories>
    		<pluginRepository>
    			<id>apache.snapshots</id>
    			<name>Apache Snapshots</name>
    			<url>https://repository.apache.org/content/repositories/snapshots</url>
    			<releases>
    				<enabled>false</enabled>
    			</releases>
    			<snapshots>
    				<enabled>true</enabled>
    			</snapshots>
    		</pluginRepository>
    </pluginRepositories>

  4. 然后在project中添加Build段:
    	<build>
    		<pluginManagement>
    			<plugins>
    				<plugin>
    					<groupId>org.apache.tomcat.maven</groupId>
    					<artifactId>tomcat6-maven-plugin</artifactId>
    					<version>2.1</version>
    					<configuration>
    						<url>http://localhost:8080/manager/html</url>
    						<server>test</server>
    					</configuration>
    				</plugin>
    				<plugin>
    					<groupId>org.apache.tomcat.maven</groupId>
    					<artifactId>tomcat7-maven-plugin</artifactId>
    					<version>2.1</version>
    					<configuration>
    						<tomcat-url>http://localhost:8080/manager/html</tomcat-url>
    						<server>test</server>
    					</configuration>
    				</plugin>
    			</plugins>
    		</pluginManagement>
    	</build>
    注意configuration中是tomcat-url,而不是url。
  5. 好了,现在可以运行Build了,首先启动tomcat,之后运行刚刚搞好的run:


至此,maven的webapp配置结束,你已经可以在你的tomcat-manager中看到这个应用,并且可以访问她。







当你在 Eclipse 中创建 Maven Web 项目时,默认情况下可能会遇到 `src/main/webapp` 目录下缺少 `WEB-INF` 文件夹的问题。这通常是因为项目的结构配置或某些插件设置没有正确初始化。 ### 解决步骤: #### 1. 手动添加 WEB-INF 目录 你可以手动创建 `WEB-INF` 文件夹,并确保其位置正确放置于 `src/main/webapp` 下。 **操作步骤:** - 右键点击 `src/main/webapp`。 - 选择“新建” -> “文件夹”,并命名为 `WEB-INF`。 然后,在该目录内可以继续增加必要的资源文件,例如 web 配置文件 (`web.xml`)、JSP 页面等。 #### 2. 修改 POM.XML 确保生成正确的构建路径 有时也需要检查一下 pom.xml 是否包含适合的打包类型以及是否指定了 web 资源的位置。确认 `<packaging>` 标签值为 `war`, 这表明它是一个Web应用程序包: ```xml <project ...> <modelVersion>4.0.0</modelVersion> <!-- 定义项目打包成 war --> <groupId>com.example</groupId> <artifactId>my-web-app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> ... <build> <finalName>${project.artifactId}</finalName> <!-- 指定过滤规则和其他属性 (如果需要) --> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> ... ``` #### 3. 使用 Archetype 创建标准结构化Maven工程模板 更简便的方法是从头开始利用Eclipse内置功能或者是命令行通过指定合适的 archetype 来创建一个新的 Maven Web 应用程序,如 maven-archetype-webapp 。这种方式能保证所有必需的基本组件都已就绪并且按照惯例进行了组织排列。 --- 如果你已经有一个正在运行但是缺乏合适布局的老式非 Maven 化 Java EE 工程,则考虑将其转换为POM管理形式,借助 M2E 插件的支持让现有代码无缝迁移至现代工具链之下工作起来会更容易一些. 希望以上信息对您有所帮助!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值