eclipse使用maven创建web3.0项目

太过爱你忘了你带给我的痛 2022-10-02 06:43 294阅读 0赞

挺别扭的,eclipse和maven发展了这么久,二者都没有很好的解决这个问题。

默认情况下,使用maven骨架撞见的webapp只支持servlet2.3,eclipse又不允许随便修改为3.0。

网上流传最多的版本可能是修改项目目录中.settings/org.eclipse.wst.common.project.facet.core.xml文件,然后还要注意一堆东西。

我梳理了一种办法,感觉处理起来相对合理,如下:

1.创建普通的webapp项目

  1. 点击菜单“File - New - Other - Maven - Maven Project”;
  2. Next;
  3. Next;
  4. Catalog 选择"Internal",选中最后一个骨架"maven-archetype-webapp","Next";
  5. 输入你自己的groupIdartifactId"Finished"

2.添加maven插件

  1. 右键点击项目名,选择“Maven - Add Plugin”;
  2. 在搜索框输入"maven-compiler-plugin",选中"org.apache.maven.plugins"开头的插件,"OK";
  3. 在搜索框输入"maven-eclipse-plugin",选中"org.apache.maven.plugins"开头的插件,"OK";

此时插件只是插入了基本模板:

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-compiler-plugin</artifactId>
  4. <version>3.6.0</version>
  5. </plugin>
  6. <plugin>
  7. <groupId>org.apache.maven.plugins</groupId>
  8. <artifactId>maven-eclipse-plugin</artifactId>
  9. <version>2.10</version>
  10. </plugin>

3.调整依赖

非必须,只是建议。

  1. 双击打开pom.xml,并切换到"Dependencies"选项卡;
  2. 建议:选中junit 3.8.1,点击"Properties",版本改为"4.12"
  3. 点击"Add",在搜索框输入javax.servlet-api,选择"javax.servlet"开头的依赖,并调整版本为"3.1.0"scope改为"provided","OK"

以上基本上依靠eclipse就可以实现,不需要直接修改pom。这里只是列出xml片段:

  1. <dependency>
  2. <groupId>junit</groupId>
  3. <artifactId>junit</artifactId>
  4. <version>4.12</version>
  5. <scope>test</scope>
  6. </dependency>
  7. <dependency>
  8. <groupId>javax.servlet</groupId>
  9. <artifactId>javax.servlet-api</artifactId>
  10. <version>3.1.0</version>
  11. <scope>provided</scope>
  12. </dependency>

4.调整第二步中的插件配置

调整compiler插件

  1. `</plugin>`上面插入一个空行;
  2. "Alt + /",选择"configuration"插入节点;
  3. "configuration"节点内重复上一步,插入encoding=utf8,source=1.8,target=1.8
  4. 提示:如果你能记住这几个单词,而且又安装了emmet的话,不放输入"configuration>encoding{UTF-8}+source{1.8}+target{1.8}"按下Tab看看。

调整eclipse插件

  1. 同上,增加"configuration"及下面的节点wtpversion=2.0,jeeversion=6.0
  2. 你还想知道emmet表达式?好吧,"configuration>wtpversion{2.0}+jeeversion{6.0}"

最终插件配置

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-compiler-plugin</artifactId>
  4. <version>3.6.0</version>
  5. <configuration>
  6. <encoding>UTF-8</encoding>
  7. <source>1.8</source>
  8. <target>1.8</target>
  9. </configuration>
  10. </plugin>
  11. <plugin>
  12. <groupId>org.apache.maven.plugins</groupId>
  13. <artifactId>maven-eclipse-plugin</artifactId>
  14. <version>2.10</version>
  15. <configuration>
  16. <wtpversion>2.0</wtpversion>
  17. <jeeversion>6.0</jeeversion>
  18. </configuration>
  19. </plugin>

5.重新生成eclipse项目构建

  1. 右键点击项目目录,选择"Run As - Maven build..."(注意选带...的);
  2. Goals中输入"eclipse:clean eclipse:eclipse",点"Run"

6.重建web.xml

  1. 删除src/main/webapp/WEB-INF/web.xml
  2. 右键点击项目目录,选择"Jave EE Tools - Generate Deployment Descriptor Stub"

7.恢复现场

第6步执行完后,你可能会发现,右键点击项目名,”Maven”选项没有了。别急,恢复一下现场就可以了。

  1. 右键点击项目名,依次选择"Configure - Convert to Maven Project"
  2. 右键点击项目名,选择"Maven - Update Project..."

8.不太好的消息

maven3将maven-eclipse-plugin标记为了’Deprecated’,说是交给eclipse来处理,但是eclipse根本没有处理好这个问题,蛇精病。

好在只是标记为’Deprecated’,说不准多少年内还能用的。

写在最后:

码字不易看到最后了,那就点个关注呗,只收藏不点关注的都是在耍流氓!

关注并私信我“架构”,免费送一些Java架构资料,先到先得!

发表评论

表情:
评论列表 (有 0 条评论,294人围观)

还没有评论,来说两句吧...

相关阅读