码迷,mamicode.com
首页 > 其他好文 > 详细

(推荐)不用archetype创建maven项目

时间:2018-08-24 13:28:35      阅读:575      评论:0      收藏:0      [点我收藏+]

标签:submit   exce   strong   cte   throw   class   except   ack   pom   

已剪辑自: https://www.cnblogs.com/wql025/p/5215570.html

说明

创建Maven项目的方式:手工创建

   

  • 好处:项目干净整洁,java和resource目录,不需要自己重新构建。pom文件干净,没有乱七八糟的东西。不会再网络不好,或者各种问题的时候,出现archetype加载半天出不来的情况。
  • 更为关键的是用这种方式创建的maven项目的web.xml的版本可自己手工选择:(不会再出现之前的不支持EL什么的坑了。)

   

   

创建一个新Maven项目

  • new 一个project

技术分享图片

  • 不选择任何Maven模板

技术分享图片

  • 起个GroupIdArifactId

技术分享图片

  • 起个项目名。注意:Idea_Project是存放此项目的工作区间,mavenDemo_idea15为存放此项目的子目录。

技术分享图片

  • 建好项目后,打开,点击Auto-Import,我没碰到这个,就不用管了

技术分享图片

  • 下面为此项目的结构

技术分享图片

项目部署

  • 点击

技术分享图片

Project: 无需设置 (当然可点击Project complier output自定义编译目录)

技术分享图片

Modules:可看到此项目无任何适配服务组件(因为是手工创建Maven,没有选择任何Maven模板)--因此需要我们进行添加。

技术分享图片

  • 选择Web(为此项目添加Web服务组件,这便是一个Web项目了)

技术分享图片

  • 现在为Web设置资源目录。双击Web Resource Directory

技术分享图片

  • 选择scr/main目录

技术分享图片

  • 在后面加上webapp。好了,点OKWeb的资源目录便设置好了。

技术分享图片

  • 现在设置Web的描述文件的目录

技术分享图片

  • 设置在webapp目录下

技术分享图片

Facts: 表示当前项目的适配服务组件。可看到此项目已是一个Web项目了。

技术分享图片

Aftifacts: 这个Aftifacts描述了当前项目发布的信息。现在进行添加,从Modeles中选择。

技术分享图片

技术分享图片

说明:A: 现在Artifacts已有了发布的项目了(idea中准确的说应是Modele) B:output root目录描述了当前项目的编译目录及适配服务。

技术分享图片

确定之后当前项目的结构:

技术分享图片

  • 如有需要,添加lib

技术分享图片

技术分享图片

   

部署服务器

技术分享图片

  • 添加服务器

技术分享图片

  • 部署

注:很多童鞋在这里找不到Arifact,请参考部署项目中的Modules的配置。如果没有为项目配置Web服务组件,那么就没有Artifact。(当前项目连Web项目都不是,哪儿来的Artifact,又部署什么呢?)

技术分享图片

技术分享图片

技术分享图片

编写代码测试

  • 创建一个java类。可看到继承HttpServlet出问题了--这是因为没有把Tomcat的依赖加入Module

技术分享图片

  • Modules加入Tomcat依赖

技术分享图片

技术分享图片

技术分享图片

添加完毕

技术分享图片

  • 现在按快捷键就可以了

技术分享图片

  • 代码编辑

Java

package com.wql;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
* Created by Lenovo on 2016/2/25.
*/
@WebServlet("/myController")
public class Controller extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// System.err.println("---");
//
解决乱码
req.setCharacterEncoding("UTF-8");
String name=req.getParameter("name");
req.setAttribute("name",name);
System.out.println(name);
req.getRequestDispatcher("index.jsp").forward(req, resp);
}

}

Html

<%--
Created by IntelliJ IDEA.
User: Lenovo
Date: 2016/2/25
Time: 0:26
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="myController" method="post">
<input name="name">
return:${name}
<input value="
提交" type="submit">
</form>
</body>
</html>

Xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

  • 记得设置默认启动浏览器

技术分享图片

  • 启动项目

技术分享图片

   

技术分享图片技术分享图片技术分享图片

   

技术分享图片技术分享图片技术分享图片

(推荐)不用archetype创建maven项目

标签:submit   exce   strong   cte   throw   class   except   ack   pom   

原文地址:https://www.cnblogs.com/alpha-idea/p/9528839.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!