创建一个新Maven项目

  • new 一个project

  • 不选择任何Maven模板

  • 起个GroupId、ArifactId

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

  • 建好项目后,打开,点击Auto-Import

  • 下面为此项目的结构

项目部署

  • 点击

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

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

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

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

  • 选择scr/main目录

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

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

  • 设置在webapp目录下

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

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

说明:

A: 现在Artifacts已有了发布的项目了(idea中准确的说应是Modele)

B:output root目录描述了当前项目的编译目录及适配服务。

C:Output directory: 品库的输出目录,可以直接输出到TomCat 的webapps目录下

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

  • 如有需要,添加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>
 
  • 记得设置默认启动浏览器

  • 启动项目

intellij idea在运行web项目时部署的位置(tomcat)

说明一下:这里是使用tomcat 部署成war exploded 而不是war包。

war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。

在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。

在idea中配置的tomcat,在运行时idea不会把项目放到自己的webapps路径下,而是复制三份文件到 ${user.home}/.IntelliJIdea/system/tomcat 目录下的各自项目。

也就是说每个项目都有属于自己的一份tomcat配置,互不干扰。

每个项目的配置文件夹中有一个 /conf/Catalina/localhost/ROOT.xml 文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="" docBase="D:\test\8\saas\trunk\SynergyWebService\target\com.synergy.demo.war" />

其中,path是指在访问此项目时,是否需要添加额外的路径,这个路径是在IDEA->Run/Debug Configurations->TomcatServer->Deployment->Application context配置,也就是项目上下文。

如果现在我在Application context加上:/com.synergy.demo

Server这边会自动加入:com.synergy.demo/

这时候,我们运行tomcat之后,在conf/Catalina/localhost就没有ROOT.xml了,取而代之的是com.synergy.demo.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/com.synergy.demo" docBase="D:\test\8\saas\trunk\SynergyWebService\target\com.synergy.demo.war" />

这时候项目的访问路径是:http://localhost:8080/com.synergy.demo/

docBase是指要运行的项目的部署位置,build是由gradle构建后生成的,gradle build完成之后生成的项目

整个项目运行过程是:

1、首先gradle build项目,将构建结果写到项目的build目录下,然后idea复制一份tomcat的conf、logs和work文件夹到${user.home}/.IntelliJIdea/system/tomcat 中。

2、启动tomcat安装目录下的catalina.sh文件,tomcat读取配置文件,找到项目位置,然后就运行起来了。

如果是使用tomcat 部署成是war包。

刚开始我将项目改为war部署的方式,但是运行之后tomcat中始终没有项目的文件。后来发现如果将当前的Application context设置为’/’,那么

tomcat也不会将项目部署到webapps中,因为这个相当于你项目的根路径。后来经过实践,发现这个Application context就是你项目在webapps路径下项目的根目录名。

 

IntelliJ IDEA maven项目 ***的更多相关文章

  1. Intellij 部署maven项目

    一 部署Maven项目 1.下载和配置 (1)下载:maven.apache.org,点击download,下载apache-maven-3.3.9-bin.zip (2)配置环境变量: 环境变量包括 ...

  2. JavaWeb 之Ubuntu intelliJ 新建maven项目及配置tomcat

    一. 破解安装 intelliJ 下载网址:https://www.jetbrains.com/idea/ 破解激活:https://www.cnblogs.com/tanrong/p/7309343 ...

  3. IntelliJ IDEA maven项目new里没有package

    idea maven项目new里没有package. 如图,idea maven项目new里没有package.: 这是因为java是普通的文件夹,要设置为Source Root 设置好以后可以了.

  4. IntelliJ IDEA maven项目的基础配置

    htt 选择编程风格File->Settings->Apprearance 配置maven路径,同样也是在settings Java Web项目配置 File->Project St ...

  5. IntelliJ IDEA WEB项目的部署配置

    以下内容是我网上找的比较全面了,其中关于facets配置很多地方都没有说明,其实很重要,我加入了自己的理解.其他来自网络.在导入一个项目有问题时,建议先创建一个正确的web项目,然后对比配置项,一般就 ...

  6. Intellij Idea web项目的部署配置[转]

    原文地址:http://blog.csdn.net/z69183787/article/details/41416189 1.前言 2.项目配置(Project Structure) 2.1 Proj ...

  7. 【转载】IntelliJ IDEA WEB项目的部署配置

    最近使用了一下IDEA,确实强大.在部署时出现了些问题.看了这篇文章,对ieda的一些部署配置有了些许了解,在此感谢原博.原文链接:http://blog.csdn.net/z69183787/art ...

  8. 修改Intellij Idea 创建maven项目默认Java编译版本

    在使用Intellij Idea 创建Maven项目时,默认的Java Language是1.5,虽然可以在Project Structrue中修改,但是每次pom.xml文件有变化时,工程又会重置到 ...

  9. IntelliJ IDEA 15 创建maven项目

    说明 创建Maven项目的方式:手工创建 好处:参考IntelliJ IDEA 14 创建maven项目二(此文章描述了用此方式创建Maven项目的好处)及idea14使用maven创建web工程(此 ...

随机推荐

  1. [转]Deep Reinforcement Learning Based Trading Application at JP Morgan Chase

    Deep Reinforcement Learning Based Trading Application at JP Morgan Chase https://medium.com/@ranko.m ...

  2. C++数组初始化

    局部数组:没有默认值,如果声明的时候不定义,则会出现随机数(undefined): 全局数组:声明时不赋值,默认值为0

  3. Mariadb使用xtrabackup工具备份数据脚本

    #!/bin/bash#这个脚本用来备份SQL文件: sql_home="/home/mysql"sql_bak_log="$sql_home/xtrabackup.lo ...

  4. 阿里云-centos7.2-LNMP-编译安装-记录

    1. 需要使用yum源自动安装的软件: yum -y install autoconf bzip2 bzip2-devel curl curl-devel e2fsprogs e2fsprogs-de ...

  5. 远程办公的GitLab开源的员工手册:涵盖了公司价值观,内部沟通交流指南,开发流程,如何开会,写作风格指南,如何报销,如何请假,线上办公工具推荐等方方面面

    原文 :https://docs.gitlab.com.cn/ce/ 英文 :https://about.gitlab.com/handbook/ GitLab Community Edition G ...

  6. dijksta 模板

    #include<bits/stdc++.h> using namespace std; #define INF 0x3f3f3f3f ]; ]; ][]; void dijkstra(i ...

  7. 容器(container)

    一.容器有哪些 平时我们经常看到各种容器名称:Servlet容器.WEB容器.Java WEB容器.Java EE容器等 二.容器是什么 2-1     容器通常理解就是装东西的,我们这里说技术上的容 ...

  8. Announcing HashiCorp Consul + Kubernetes

    转自:https://www.hashicorp.com/blog/consul-plus-kubernetes We're excited to announce multiple features ...

  9. BeEF介绍

    什么是BeFF?         BeEF是眼下欧美最流行的web框架攻击平台,它的全称是 the Browser exploitation framework project.近期两年国外各种黑客的 ...

  10. oracle数据字典-权限-角色-参数

    每个数据库都提供了各自的数据字典的方案,虽然形式不同,但是目的和作用是一样的,比如在mysql里数据字典是在information_schema 里表现的,sqlserver则是在sys这个系统sch ...