zoukankan      html  css  js  c++  java
  • eclipse解决maven项目右键run as没有run on server的问题:

    问题:

    在运行maven项目的时候,发现在项目上右键run as 没有run on server选项;

    解决方法:在新建maven项目的时候,在packaging中选war而不选jar。

    如图,通过maven建web项目时packaging里选war:

    我测试过,如果Packaging里选的是jar,项目无论如何都无法作为web项目正常启动。

    我也测试了另一种方法,貌似无效:

    这种方法是在新建maven时Packaging里选jar,但是中间通过以下方式改成动态的web项目。

    具体做法如下:

    在maven项目上右键>properties>Project Facets:

    可以看到当前并不是web项目,所以勾选两个选项:Dynamic Web Module、JavaScript:

    如果项目中没有web.xml可以在这里进行预设置

    可以点击上图中的Further configuration avaliable

    之后可以看到默认配置:

    如果不修改它的默认配置,会直接在项目发布路径下生成webcontent,如下图所示:

    所以需要修改配置如下:

    勾选生成web.xml(如果不勾选不会生成web.xml),并修改web.xml生成的所在文件夹为webapp。

    点击OK,之后点击Apply即可。

    如下图,已经生成webapp和内部的web.xml:

    接着按照正常的项目结构,可以把webapp拖到src下main文件夹:

    之后,可以在项目上右键run as,就可看到Run on server:

    服务启动后,浏览器也能正常启动,但是还没完,还是会出错。

    我配的欢迎页面失效了,会显示404:

    看来声明为jar还是无法运行成功。

    基本上,除了改成war包,还没找到其它方法解决方法。

    可以看一下建立maven项目时,声明jar包与war包产生的两种pom文件区别:

    jar:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.changping.shirodemo</groupId>
      <artifactId>shirodemo</artifactId>
      <version>0.0.1-SNAPSHOT</version>
    </project>

    war:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.changping.shirodemo01</groupId>
      <artifactId>shirodemo01</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>war</packaging>
    </project>

    通过比较pom文件可以发现:声明war也就比jar多了<packaging>war</packaging>。

    所以如果不想新建maven项目、或者欢迎页面不想变404的话,可以在pom文件里加上<packaging>war</packaging>,修改之后update即可。

    如图是packaging修改为war,服务启动后,欢迎页面已经可以正常显示:

    至于如果maven项目里webapp下没有web.xml的解决方法,除了刚才那种右键>properties>Project Facets方式以外,还可以直接从别的项目粘一个即可:

  • 相关阅读:
    webpack2 前篇
    vue 的调试工具
    CSS 命名规范总结
    reset.css
    推荐几个精致的web UI框架
    自己是个菜鸟 自己查找的简单的适合初学的Makefile
    Linux下编译、使用静态库和动态库 自己测过的
    函数参数的传递 动态内存传递问题(指针的指针)
    二级指针 (C语言)
    find_if查找vector内对象的成员 作为菜鸟一直不会用也不敢用
  • 原文地址:https://www.cnblogs.com/timingstarts/p/12729811.html
Copyright © 2011-2022 走看看