IntelliJ IDEA maven项目 ***
创建一个新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项目 ***的更多相关文章
- Intellij 部署maven项目
一 部署Maven项目 1.下载和配置 (1)下载:maven.apache.org,点击download,下载apache-maven-3.3.9-bin.zip (2)配置环境变量: 环境变量包括 ...
- JavaWeb 之Ubuntu intelliJ 新建maven项目及配置tomcat
一. 破解安装 intelliJ 下载网址:https://www.jetbrains.com/idea/ 破解激活:https://www.cnblogs.com/tanrong/p/7309343 ...
- IntelliJ IDEA maven项目new里没有package
idea maven项目new里没有package. 如图,idea maven项目new里没有package.: 这是因为java是普通的文件夹,要设置为Source Root 设置好以后可以了.
- IntelliJ IDEA maven项目的基础配置
htt 选择编程风格File->Settings->Apprearance 配置maven路径,同样也是在settings Java Web项目配置 File->Project St ...
- IntelliJ IDEA WEB项目的部署配置
以下内容是我网上找的比较全面了,其中关于facets配置很多地方都没有说明,其实很重要,我加入了自己的理解.其他来自网络.在导入一个项目有问题时,建议先创建一个正确的web项目,然后对比配置项,一般就 ...
- Intellij Idea web项目的部署配置[转]
原文地址:http://blog.csdn.net/z69183787/article/details/41416189 1.前言 2.项目配置(Project Structure) 2.1 Proj ...
- 【转载】IntelliJ IDEA WEB项目的部署配置
最近使用了一下IDEA,确实强大.在部署时出现了些问题.看了这篇文章,对ieda的一些部署配置有了些许了解,在此感谢原博.原文链接:http://blog.csdn.net/z69183787/art ...
- 修改Intellij Idea 创建maven项目默认Java编译版本
在使用Intellij Idea 创建Maven项目时,默认的Java Language是1.5,虽然可以在Project Structrue中修改,但是每次pom.xml文件有变化时,工程又会重置到 ...
- IntelliJ IDEA 15 创建maven项目
说明 创建Maven项目的方式:手工创建 好处:参考IntelliJ IDEA 14 创建maven项目二(此文章描述了用此方式创建Maven项目的好处)及idea14使用maven创建web工程(此 ...
随机推荐
- 标准正态分布表(scipy.stats)
0. 标准正态分布表与常用值 Z-score 是非标准正态分布标准化后的 x即 z=x−μσ" role="presentation">z=x−μσz=x−μσ 表 ...
- MySQL中的修改表操作
一.增加表的列 语法:alter table 表名 add( 增加列定义 ); 实例: #增加列 alter table text add( text_num ) ...
- Python中random模块在主函数中设置随机种子是否对于调用的函数中的随机值产生影响?
一个问题,加入我有一个工程文件,在main函数里面调用random模块,设置随机种子,主函数中的随机种子的设置是否会影响主函数所调用的函数中的随机值? 实际上这个问题非常重要,比如你在跑网络的时候,初 ...
- ldd 查看程序依赖库
ldd 查看程序依赖库 https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/ldd.html
- spring的multipartResolver和java后端获取的MultipartHttpServletRequest方法对比 (附:遇到的坑)
转载:https://www.cnblogs.com/yskcoder/p/4718198.html 这两天在用spring进行上传上遇到问题,今天进行了问题的排查,这个过程也增加了我看spring源 ...
- 使用kcptun安全代理访问服务
KCP 是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果. KCP:https://github.com/skywind ...
- 常用cursor光标说明
1.cursor语法: cursor : auto | crosshair | default | hand | move | help | wait | text | w-resize |s-res ...
- webservice------UDDI SOAP WSDL 之间的关系
[ 真的是服了一些博客.....啰里啰唆的将一堆== 根本不知道讲的是什么 ... 在描述一个定义之前 (不如先通俗的讲它是干什么的)] SOAP(Simple Object Access P ...
- SQLI DUMB SERIES-6
less6 输入 ?id=1" 说明双引号未被过滤,输入的id被一对双引号所包围,存在注入点,可以闭合双引号. 而输入正常时 情况和less5相同,因此注入同less5.
- HDU2027:统计元音
Problem Description 统计每个元音字母在字符串中出现的次数. Input 输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串. Output 对于每个 ...