Idea 部署非Maven项目

参考:http://m.blog.csdn.net/z69183787/article/details/78030857

以前一直很好奇,在idea中运行tomcat,把项目部署到其中,运行起来,然后我去tomcat目录下去看,根本找不到我部署的项目 那我的项目是咋运行的啊… - -

后来我就查啊查 ,纠结啊纠结,然后大概知道是咋回事了:

在idea中配置的tomcat,在运行时idea不会把项目放到该路径下,而是复制一份足够的配置文件,到 ${user.home}/.IntelliJIdea/system/tomcat 目录下:

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

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

<?xml version="1.0" encoding="UTF-8"?>
<Context path="" docBase="D:\work\项目\target\xxx-web" />
  • 1
  • 2

其中,path是指在访问此项目时,是否需要添加额外的路径,如果为空,则直接使用域名或者ip就可以访问到该项目:127.0.0.1。这个值在ieda中的Run/Debug Configurations中可以配置:

docBase是指要运行的项目的部署位置,D:\work\项目 就是我的项目源代码的位置,target是由maven构建后生成的,D:\work\项目\target\xxx-web 目录就是maven build完成之后生成的项目,结构如下:

而idea启动tomcat的命令为:

也就是说,整个项目运行过程为:首先maven build项目,将构建结果写到项目的target目录下,然后idea复制一份tomcat的配置文件到${user.home}/.IntelliJIdea/system/tomcat 中,之后启动tomcat安装目录下的catalina.bat文件,tomcat读取配置文件,找到项目位置,然后就运行起来了。

在idea中运行tomcat,把项目部署运行起来,然后我去tomcat目录下去看,找不到我部署的项目 那我的项目是怎么运行起来的?

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

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

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

如上,将两处都修改成Update resources即可。

webapps下面文件夹都翻了一遍,都没有发现部署的项目。

去work文件夹下也看了一遍,是空的。

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

我们进入该目录,看到如下(名称是通过我们的项目名转化而来):

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

我们进入其中一个项目下,看到如下:(在自己的tomcat安装目录下是看不到日志的,日志在这里,还有一些配置文件)

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

其中,path是指在访问此项目时,是否需要添加额外的路径,如果为空,则直接使用域名或者ip就可以访问到该项目:127.0.0.1。这个值在ieda中的Run/Debug Configurations中可以配置:(即Application context)

如果现在我在Application context加上:/springSecurityDemo

Server这边会自动加入:springSecurityDemo/

这时候,我们运行tomcat之后,在conf/Catalina/localhost没有发现ROOT.xml,而是springSecurityDemo.xml文件,内容如下:

这时候项目的访问路径是:http://localhost:8145/springSecurityDemo/

docBase是指要运行的项目的部署位置,/myProject/springSecurityDemo 就是我的项目源代码的位置,build是由gradle构建后生成的,gradle build完成之后生成的项目,结构

如下:

而idea启动tomcat的命令在这里:

整个项目运行过程是:首先gradle build项目,将构建结果写到项目的build目录下,然后idea复制一份tomcat的conf、logs和work文件夹到${user.home}/.IntelliJIdea/system/tomcat 中,之后启动tomcat安装目录下的catalina.sh文件,tomcat读取配置文件,找到项目位置,然后就运行起来了。

-------------------------------------------------------------------------------------

如果是使用tomcat 部署成是war包。那么会不会就能在自己安装的tomcat中找到呢?

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

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

时间: 2024-08-12 17:09:13

Idea 部署非Maven项目的相关文章

如何部署一个Maven项目(上)

如何部署一个Maven项目(上)之 :如何在windows下安装一个Maven(**-bin.zip版) 前言: 昨天听一个年轻老师讲课吧,给我们介绍了Maven但是却说自己下来了解,今天有时间自己测试一下! 了解maven的优点: 1.maven可以在多个项目间共享java开发的jar[我是看这个来得] 2.大部分架包能从maven数据库里面获取(需要联网) 度娘也给出了解释:度妈妈告诉你 maven还需要JDK支持.不会安装JDK的就百度吧 官网下载地址: http://mirror.bit

自动化部署java maven项目到多个目标主机的Shell脚本

本篇是<Linux Shell脚本之远程自动化部署java maven项目>的姊妹篇,但包含了bug.issue修正和添加了更多的支持特性,可以从GitHub上获取最新脚本内容:https://github.com/DingGuodong/AutomaticDeployJavaMavenProject . 自动化部署java maven项目到多个主机的环境条件假设: 1.java maven项目至多有一个依赖项目 2.多个目标主机上的部署目录是相同的 支持特性: 1.在部署主机上将java m

如何部署一个Maven项目(下)

  如何部署一个Maven项目(下)之 在Eclipse(Luna)上安装Maven 前言: 目前Java开发者比较热爱的三款编辑器: 1.Eclipse(各种插件需要自己组装) 2.MyEclipse (插件齐全) 3.IntelliJ IDEA(linux上使用的多,用过,强大,但是习惯了MyEclipse和Eclipse,突然操作IntelliJ十分别扭) 部署步骤: 1.安装Maven插件: 第一次使用Maven是需要组装的 插件地址: http://download.eclipse.o

将Myeclipse非maven项目,导入到IDEA

将Myeclipse非maven项目,导入到IDEA 打开原项目,复制".classpath"文件路径,在IDEA中打开项目时,选此文件路径 进入项目转换界面,默认一步步完成 导入的项目之后,需要在"Project Structure"做对应配置 Modules:将文件夹标记成对应的类型(主要是src标记为Sesource.config标记为Resource.WebRoot标记为Resource等) Libraries:导入WEB-INF/lib中的包(否则项目中各

Intellij IDEA配置tomcat(非maven项目)

Intellij IDEA配置tomcat(非maven项目) 引用:https://blog.csdn.net/springlovejava/article/details/78570241 原文地址:https://www.cnblogs.com/mgblog/p/10459903.html

Linux Shell脚本之远程自动部署java maven项目

脚本功能: 自动从git上获取java maven项目工程源码,在机器A上build,build完成后,将Class文件和配置文件等上传到机器B,重新启动机器B上的服务以便变更生效. 脚本特点: 1.(与之前的自动部署脚本相比)全新优化了脚本代码,更friendly,结构更紧凑 2.Public header删除了无用或者不好用的有色彩显示函数,并修正了WORKDIR不是绝对路径可能导致的bug 3.修正了域名解析判断是否正常的一个bug,该bug可能导致遇到无法解析后不断尝试解析 4.全新的m

在Jenkins上进行自动化测试(非maven项目)

小白的傻瓜式教程,有错请指出~~转载请注明出处,谢谢~~~ 一.工具 jenkins apache-ant jdk junit.jar 二.准备好测试代码 现在测试写的是Java项目,没有主函数.不是maven项目,提交到SVN上jar包会找不到.所以要在项目中新建一个文件夹专门来放引用的jar包.我建了一个lib来放jar包. 接下来将jar包引入到项目中:右键项目-->build  path-->configure build path-->add jars-->选择项目中存放

使用jekins自动构建部署java maven项目(jdk1.7+tomcat7.0+jenkins2.19.3)

1.下载jenkins 地址:https://jenkins.io/index.html 本人下载了2.19.3版本的war包:jenkins.war 2.安装jenkins 拷贝jenkins.war到tomcat的webapps文件夹下,如果tomcat是启动的,jenkins项目会自动解压启动的,如果tomcat是停止的,需要启动tomcat服务,进入bin文件夹,linux环境下执行 ./startup.sh即可启动服务,windows下双击startup.bat即可. 然后,访问地址:

eclipse部署非web项目到tomcat

从svn检出的项目,假如是非web项目.如何部署到tomcat? 1,确定tomcat设置是否正确: 双击图中tomcat: 确定设置如下: 2,项目上点击右键属性,勾选如图: 3,其实以上两步之后就可以了,如果还不能部署,那么: 修改workspace,项目/settings 中的 org.eclipse.wst.common.project.facet.core.xml文件<installed facet="jst.web" version="3.0"/&