• 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方式以外,还可以直接从别的项目粘一个即可:

  • 相关阅读:
    Android 优雅的让Fragment监听返回键
    Android 去掉TabLayout下的阴影,AppBarLayout下的阴影
    mongodb.conf配置文件详解
    Ubuntu14.04下Mongodb的Java API编程实例(手动项目或者maven项目)
    Ubuntu14.04下初步使用MongoDB
    如何做到Ubuntu14.04下的mongdb远程访问?(图文详解)
    Ubuntu14.04下Mongodb(在线安装方式|apt-get)安装部署步骤(图文详解)(博主推荐)
    neo4j的配置文件(图文详解)
    Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
    Ubuntu16.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
  • 原文地址:https://www.cnblogs.com/timingstarts/p/12729811.html
Copyright © 2020-2023  润新知