idea学习系列四之maven及服务器的使用

idea学习系列四之maven及服务器的使用

上一篇,介绍了idea中版本管理工具svn和git的使用,这里将介绍idea中maven和服务器的使用。

maven

现在项目几乎都是通过maven来管理项目依赖的。所以在idea中使用的maven是必须要会的。废话不多说直接开始

配置

  • maven配置很简单,只需要配置好使用的是那个maven,以及setting文件和仓库位置就可以了。
    在这里插入图片描述

  • 在导入的时候还可以选择是否下载文档和源码。当然如果下载源码和文档在导入包的时候就会慢很多。
    在这里插入图片描述

  • pom文件发生改变时,自动导入依赖包
    在这里插入图片描述

  • 添加参数,添加这个参数-DarchetypeCatalog=internal后在maven项目构建的时候会快很多,这个可以直接配置在default Settings中
    在这里插入图片描述
    原因是:
    在这里插入图片描述

  • 默认情况下,我们创建的maven项目的结构可能是不完整的,所以需要手动的补全项目结构。补全项目结构我们可以在Project Structure下的Modules下的Sources中将项目文件夹创建好,然后再设置为相应的资源目录就可以了
    在这里插入图片描述
    完整的目录结构为:
    在这里插入图片描述

操作

maven的相关操作可以打开右边的 Maven Project,在这个界面进行操作。
在这里插入图片描述
其中在Maven Project中里面包含了操作的工具栏,maven的生命周期,只需要双击就可以运行他的生命周期了,然后里面还包括了依赖的jar包以及引入的插件。

工具栏中常用的按钮有:

  • 第1个按钮
    • 这个按钮可以用来刷新maven依赖
  • 第6个按钮
    • 这个按钮可以用来呼出命令行,执行一些maven相关命令
  • 第9个按钮
    • 这个按钮可以用来显示maven的依赖树,在依赖树里面可以用来解决maven依赖的冲突。如果依赖冲突了那么连线会变成红色。

问题

自定义插件不显示

在maven里面自定义的插件不会再Maven Project窗口中显示。如果仔细看会发现我们自定义的插件被标签包裹了,而的作用是和的作用类似,都是用于在父pom中统一管理版本和配置的。所以如果我们要使用那么需要在标签外在引用一次,或者把pom中标签去掉就可以了。

例如

<build>
    <finalName>mavenPorject</finalName>
    <pluginManagement>
      <plugins>
          <plugin>
              <groupId>org.apache.tomcat.maven</groupId>
              <artifactId>tomcat7-maven-plugin</artifactId>
              <configuration>
                  <!--端口控制-->
                  <port>8080</port>
                  <!--项目路径控制意味着http://localhost:8080/abc-->
                  <path>/</path>
                  <!--编码-->
                  <uriEncoding>UTF-8</uriEncoding>
                  <server>tomcat7</server>
              </configuration>
          </plugin>
      </plugins>
    </pluginManagement>
      <plugins>
          <plugin>
              <groupId>org.apache.tomcat.maven</groupId>
              <artifactId>tomcat7-maven-plugin</artifactId>
          </plugin>
      </plugins>
  </build>

在maven中正常导入依赖后却无法import导入

这个可能是idea的缓存造成的,所以清理缓存就可以了,清理的方式是:File–>Invalidated CaChes/Restart,清理重启就可以了

服务器

服务器有很多中,这里主要说一下tomcat,其他的也是大同小异。

Tomcat

使用外部Tomcat

配置

tomcat配置在run下面的Edit Configurations中

在这里插入图片描述

然后点击+号添加一个本地的tomcat
在这里插入图片描述
添加好了之后服务器配置在Server中,而部署在Deployment中。

在配置页中After launch表示启动容器之后做的操作,而最下面的Before launch则标识启动容器之前要做的操作。

文件修改后实时生效

需要实时生效,在tomcat中添加了项目之后只需要将tomcat中Server配置下的On ‘Update’ action 和On frame deactivation修改为Update classes and resources就可以了
在这里插入图片描述这种方式并不能完全实现热部署,如果想实现热部署还是推荐使用JRebel for IntelliJ

修改项目打包后的位置

默认情况下在idea中配置的tomcat,如果部署的是扩展包,在运行时idea并不会把编译后的项目放到tomcat的webapps路径下,而是输出到打包的指定位置(Artifacts中Output directory的路径中),然后复制一份tomcat的conf、logs和work文件夹到${user.home}/.IntelliJIdea/system/tomcat/projectName下面,之后他还会在\apache-tomcat-7.0.82\conf\Catalina\localhost下生成一个xml,里面记录了访问路径和文件编译输出路径的对应关系,之后启动tomcat安装目录下的catalina.sh文件,tomcat读取\apache-tomcat-7.0.82\conf\Catalina\localhost下生成的xml,找到项目位置,然后就运行起来了。

所以如果我们让他将编译后的项目输出到tomcat的webapp下面。我们只需要修改项目设置中的Artifacts中Output directory的路径就可以了,让他指向tomcat中webapps下项目名称,那么在运行的时候他就会将编译后的项目输出到我们指定的位置

当然如果部署的是war包那么他就将解压后的war包复制到tomcat的webapp下面
在这里插入图片描述

将项目打成展开包

​ 当我创建或导入web项目的时候一般情况下会给我们创建一个展开包但是也有可能不帮我们创建,如果我们要部署到tomcat中,那么就必须需要创建一个包。创建方式也很简单
在这里插入图片描述

其中有个地方需要注意,那就是web资源。这里的web资源默认他是通过Facets中的配置指定的,其实我们也可以手动指定web资源的位置,具体的指定方式和我们完全手动打war包指定web资源的方式一样,具体的参考下面的将项目打成web包。

而web资源在Facets中的配置位置为:
在这里插入图片描述
所以有的时候我们是需要修改的,不然可能会找不到web资源例如我们把web资源放到了webRoot下面的时候。就需要修改这里的路径指向webRoot

将项目打成war包

如果是maven项目,直接通过mvn package来打包就可以了,如果是普通的web项目,那么可能就会麻烦一点。

打包web项目为war,有两种方式,分别是:

  • 基于展开包,创建war包
  • 自己组装war包

这里强烈建议基于展开包来创建war包。因为自己组装稍微有点麻烦。

基于扩展包创建war包

基于扩展包构建war包那么项目中得先有展开包,而展开包的创建方式上面已经介绍过了。当项目中有了展开包之后,我们直接基于展开包创建就可以了

在这里插入图片描述

自己构建war包

自己构建war包,我们需要做的就是自己在项目的Aritfacts中将项目的包结构组装好,然后将编译的文件输出到对应的位置

首先我们需要在Project Structure中的Artifacts中在添加一个打包的配置。

  1. 点击添加选择添加一个Archive
    在这里插入图片描述

  2. 添加后他默认是没有WEB_INF以及web数据的输出路径的所以我们还需要给他添加需要输出的web数据。选中项目.war然后点击+号在选择Driectory Content(这个表示要输出web数据的目录),然后再选择项目存放web数据的目录也就是webRoot或webContext。当然如果web数据存放在其他目录那么就选择其他的
    在这里插入图片描述

  3. 设置好web数据的输出路径之后在创建WEB-INF,以及WEB-INF下面的classes,然后再将项目编译数据添加到classes下面。添加方式选中classes然后点击+号选择Module Output,将项目添加进去
    在这里插入图片描述

  4. 如果有依赖的包,那么需要在WEB-INF下面创建一个lib目录,然后选择Library Files,将依赖包添加到war包中。
    在这里插入图片描述

  5. 所以配置好的结构就是
    在这里插入图片描述

当打包的是war包的时候输出路径选哪里那么他就会将打包的war包生成在哪里,并且他还会将这个war包解压到tomcat的webapp下面,具体webapp下面的哪里,要看在tomcat里面配置的项目访问路径是哪里,如果是/那么就会输出到ROOT下面,如果是其他的例如/xxx,那么就会输出到webapp\xxx目录下面。

如果不想运行直接就把war包生成,那么可以直接选择Build–>Build Artifacts 然后选择我们创建的Artifacts 就可以了
在这里插入图片描述

weblogic

weblogic的使用其实和tomcat的使用差不多,只不过需要在指定weblogic所使用的域而已,还有就是在部署的时候他可以选择Deployment methed。他有两个值,分别是Weblogic.Deployer和Auto deploy,其中Weblogic.Deployer表示将项目的输出位置指定为项目的部署位置,而Auto deploy则标识将项目部署到域目录的autodeploy目录下自动部署。
在这里插入图片描述

还有就是使用weblogic进行部署,有的时候会报weblogic.application.ModuleException: Unmarshaller failed,这个问题是因为weblogic的版本不支持新版的web版本,所以需要把web版本改为2.4的,直接修改web.xml就可以了

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <!--内容-->
</web-app>

好啦,idea中服务器的使用就这么多,其实实际中我们可能更多的是使用maven来打包,当然也可能会直接把web项目打包,所以两个都得了解一下

下一篇,idea学习系列五之debug及插件的使用

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值