zoukankan      html  css  js  c++  java
  • maven 创建javase和web工程

    src/main/java
    src/main/resources
    src/test/java
    src/test/resources
    --maven Java工程
    src/main/webapp js css 图片
    --maven Web工程

    红框处需要联网才能勾选使用,或者配置-DarchetypeCatalog=internal,使用本地之前已有的

     使用骨架/模板   创建Java 工程--- quickstartwebapp

     mvn -java工程骨架创建的工程,目录不完整

     手动补齐

     手动设置

    或者structure里创建设置

     不使用骨架创建,即不勾选,比骨架少了案例,但有一个资源文件

     总结,Java工程不推荐骨架

    骨架创建web工程--少3个目录,需要手动补齐

     如下,成功

     注意冲突

    <!--同内置tomcat中的jar运行时冲突,scope解决-->
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    </dependency>
    <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.0</version>
    </dependency>
    </dependencies>

    写代码时起作用,项目运行时用插件里的
    <scope>provided</scope>


    又报错,注意项目启动运行方式,是用mavcen命令启动的tomcat:run,还是用集成的自定义tomcat运行的
    以下是用maven内置tomcat运行的,遇到报错

    百度结果

    servlet不是servlet,jsp不能编译。。。这什么情况
    注意: 用内置tomcat会遇到 版本兼容报错,maven默认内置的tomcat版本较低。Tomcat6不能与JDK1.8一起使用 ?这个注意后版本问题,看后面的解释,是有问题的!

    参考大佬连接

    https://www.cnblogs.com/bk-jin/p/maven.html

     

    设置maven的插件版本( 配置文件可以随时 更改 内置插件的参数)

    可单独开端口

    <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
    <port>8888</port>
    </configuration>
    </plugin>
    设置模板

    以下是用IDEA集成的 独立tomcat运行的,注意版本,不用加参数配置,不用加scope也成功了,二者兼容,不会遇到版本兼容问题

     页面可以正常访问

     备注:

    pom里即代码用的servlet信息

    内置tomcat7里的servlet信息(仍jsp报错)

    独立安装的tomcat-8-5-31版本里面servlet信息,用这个是可以运行成功的

     综上可发现,代码里引入的servlet-api的版本最低

    因为项目中有像jsp-api.jar servlet-api.jar(主要是这个包引起的)跟tomcat6/tomcat7的lib中同样的包,
    但版本比tomcat6的版本要低,在运行的时候,因为会优先加载项目中的包,所以报错。

    思考:项目使用的servlet 和 mvn内置的tomcat7 使用的servlet保持一致能否可以?

     结果 项目编译成功,但运行也会报错

    但添加<scope>provided</scope> 后,也成功了

    所以:项目中的servlet 最好 和 其他内置插件(如tomcat)使用的jar包,分开使用?这个结论对吗?有待验证...下面有位大佬说

    我们自己的应用中不应该包含WEB服务相关的jar包,即 /WEB-INF/lib 目录下不能出现诸如 jsp-api.jar、el-api.jar、servlet-api.jar 等jar包。。

     大佬说的有道理。项目/WEB-INF/lib不应包含任何特定于服务器里的jar包库

     国外大佬回答

    That will happen when you include server-specific libraries of a different server make/version in the /WEB-INF/lib of your web application,

    such as jsp-api.jarel-api.jarservlet-api.jar, etc. You need to remove them all. The /WEB-INF/lib should not contain any server-specific libraries.

    They belongs in the specific server itself (Tomcat has them in its /lib folder already).

     

    tomcat/webapps/项目名/web-info/classes或者lib里面是class文件和jar包

    tomcat/lib 已有这几个包。

     参考http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html

  • 相关阅读:
    IOS开发-cell的动态高度
    IOS开发-视频,音频,录音简单总结
    cocoapods的安装及注意事项
    CUICatalog: Invalid asset name supplied: (null) _configureCellForDisplay:forIndexPath
    IOS开发—数据库的使用
    IOS开发-键盘通知自定义键盘
    IOS开发-手势简单使用及手势不响应处理办法
    IOS开发-UITextField代理常用的方法总结
    Linux Shell 编程学习笔记
    Java的进程内缓存框架:EhCache
  • 原文地址:https://www.cnblogs.com/daofree/p/13713578.html
Copyright © 2011-2022 走看看