Intellij Idea 15 三分钟创建 基于maven管理的JAVAWEB项目并用tomcat部署

写在前面:

由于最近要从Myeclipse中将一个项目转到Intellij idea,但是我没有进行直接导入eclipse项目,我就想重新建一个java WEB项目,并利用Maven进行管理,正好重新认识一下Intellij 。如果想将项目直接从eclipse导入到Intellij,可以直接搜索如何导入网上有很多教程。
当然我这篇文章不会把每个步骤都详细的列出来,比如一步一步点击和截图,但是我会强调容易出错的地方,而且会贴出详细步骤的链接。我要说的是大方向上的创建以及创建中遇到的坑,自己找出解决方法的步骤。也是方便自己后续使用。

1)用Maven创建工程,只需2分钟,多了剁手

新建Maven

新建Project,“在Intellij中Project相当于eclipse中的Workspace,而Module相当于eclipse中的project。”相信这句话在很多地方都有看到过,但是我感觉这句话挺误导人的,因为我觉得没这个必要。就直接新建一个Project,他就是一个Project,不用再去新建Module,因为一般用一个Intellij建的项目就一个程序,除非你是很大的项目,当然可能我是新手还没遇到。像Android Studio中一个Project中就一个APP新建的Module不过是存放一些文件。

OK新建Project,选择Maven,然后这里很重要的一点
不要选creat from archetype,把这个取消
,因为这个是构建Maven项目骨架,而这个骨架就是你自己创建几个文件夹2分钟就能搞定,如果你勾选了则他要通过网上下载骨架,而他这个网速没有半个小时你是搞不定的,可能网上教程有说什么修改archetype=internal啊,我试过,根本没用,还是要等很久。
取消这个进行下一步输入项目名称创建好了。
然后到这里你会发现下面有一个在跑的downloading maven plugins这个东西很气人一直在跑

使用自己的Maven版本

其实他根本就是连不上网,所以一直卡在那。我在网上搜了一下,没有相关资料,可能别人没遇到过所以我就想,应该是maven自身版本的问题,因为Intellij自己有Maven插件,那他的插件肯定不是最新版本。那我不用他Maven,我们去Maven官网下载最新版然后安装到本机,配置一下Maven环境变量,这个相当快,你直接下载解压包,具体教程Maven环境变量配置。很详细。然后我们把Intellij中找到,File->settings->Build,Execution ->Build TOOLS ->Maven ->Maven home directory这里就是Maven插件,我们换成自己新安装的最新版。这里就设置完成了,刷新一下,右键项目,Maven->reimport,应该成功了,没有downloading了,如果还有就stop download重新reimport,如果暂停不了就关了项目重新打开一下intellij。反正肯定好使。

生成javaweb骨架

然后File->Add Framework Support,添加Web Service ,也就是java WEB骨架基本该有的都有,可以根据自己需要自己添加。
这里生成之后我把我的项目结构贴出来:
这里写图片描述

maven的作用

这里Maven就创建完成了,Maven的作用我理解的就是你可以在他的POM.XML文件下添加任何你想要添加的功能,他会自动下载并整合到Library,这样你在转移项目的时候也会很方便,因为只要配置Maven下的pom.xml文件
这里我把我的pom.xml文件给出,也就是要引入的一些常用的包,可以根据需要添加与删除。
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.tcb.appservice</groupId>
    <artifactId>web-ssm</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <properties>
        <!-- 编码格式  -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- spring版本号 -->
        <spring.version>4.1.6.RELEASE</spring.version>
        <!-- mybatis版本号 -->
        <mybatis.version>3.3.0</mybatis.version>
        <!-- log4j日志文件管理包版本 -->
        <slf4j.version>1.7.7</slf4j.version>
        <log4j.version>1.2.17</log4j.version>
    </properties>

    <dependencies>
        <!-- 添加junit4依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <!-- JSTL依赖标签类 -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- 导入java ee jar 包 -->
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
        </dependency>

        <!-- spring核心依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- mybatis配置 -->
        <!-- mybatis核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <!-- mybatis/spring包整合依赖 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.2</version>
        </dependency>
        <!-- 导入Mysql数据库链接jar包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.30</version>
        </dependency>

        <!-- 引入apache mina jar包 -->
        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-core</artifactId>
            <version>2.0.13</version>
        </dependency>
        <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.2.2</version>
        </dependency>
        <!-- apache poi jar包导入 -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.14</version>
        </dependency>

        <!-- 日志文件管理包 -->
        <!-- log start -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!-- 格式化对象,方便输出日志 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.1.41</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <!-- log end -->
        <!-- 映入JSON -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.6.1</version>
        </dependency>
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>
        <!-- 上传组件包 -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.9</version>
        </dependency>
    </dependencies>


    <build>
        <defaultGoal>clean</defaultGoal>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <warSourceDirectory>${basedir}/web</warSourceDirectory>

                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        <!--配置Maven 对resource文件 过滤  注意:一定要配置这个,否则会出现target里面没有mapper.xml文件-->
        <resources>

            <resource>
                <directory>src/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </resource>

            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>

就可以了,什么SSM框架SSH框架都自动给你配好。当然Maven还有很多强大功能,具体我也没用过,不过非常推荐看**《Maven实战》**中国人写的书,挺适合入门者的,我看了几章我感觉用的到的,比如说pom.xml文件的注解含义。书没全部都看完,因为会用就行,后面章节深入讲解库还有做Maven里面插件的,这个对于我们使用者没什么太大影响。

2)架构SSM的配置

我的项目因为比较简单,所以没有涉及到SpringMVC,只配置了Spring-mybatis。
如果想配置SSM的项目可以去搜一下,有很多创建项目的模板和教程,这里我就不细说了。可能以后我再学习一下当把项目改成SSM框架的时候这里,再来详细说一下。
web.xml这个文件比较重要,去搜一下相应的语法结构弄懂然后进行自己的配置。
spring-mybatis.xml会出现一个配置选项,需要配置一下。我理解的也就是spring 和配置文件连接。
此时会配置相应的jdbc.properties文件属性。这里需要了解语句的作用。
所以主要就是配置上面这两个文件,配置好之后基本就没什么问题,如果有就看LOG报什么错找错就行。

log4j.properties这个文件好配置,不用过多纠结,Intellij自己有问题,提示unused properties不用管他,直接引入log4j的包然后把log4j文件拷入就行了。

3) 关于Tomcat部署的配置:

配置tomcat前需要了解的功能

配置TOMCAT,这个网上教程一搜一大堆,当然我推荐一个JAVA WEB项目创建 这个作者写的步骤相当详细,而且每个功能都有他的理解说明,很细心的作者。最好从头到尾详细看完,然后会了解其中的很多功能。当然这里我们需要做的是按照他的第三部tomcat的配置,因为前两部的配置我们通过Maven已经完成不需要他那么复杂的步骤。一定看一下方便intellij工具各个功能配置的理解。

配置tomcat

这里我觉得我还是研究的挺透彻的,结合了网上不同的教程以及自己的实践操作,已经把tomcat配置弄懂了。
首先看ProjectStructure中的Modules这里默认的output path 是target目录,这里用默认的就行,因为这时compile outpath。仅仅是编译输出路径。我们不用管他,我要提这里一句主要是跟后面的tomcat输出路径进行区别。然后看Artifacts这里的设置其实就是关联tomcat的设置了,首先添加,Web Application exploded->from modules。一定要添加这个,这个是tomcat运行的基础。添加完这个之后,我们会看到他的output 路径是out包,也就是tomcat的输出路径。添加完之后OK完成,然后进行tomcat editconfiguration的配置,添加tomcat server->local直接添加,tomcat名字起不起也无所谓,重要的是配置deployment选项卡,下面的,点添加,可以添加exploded,这里后面的Application context/后面的就是访问路径,就是你在浏览器输入xxx:8080/aabbcc 这里的aabbcc就是你要添加的访问路径。默认为空,也就是你直接起tomcat的8080端口就能访问,但是如果tomcat服务器下有多个程序,则需要在这里进行一个指定名称访问哪个程序。到此,tomcat服务器就可以启动了,运行一下可以成功,没有问题。

生成war包呢

Intellij不像Eclipse有直接导出war包的功能。那么这里就需要再次设置project structure->Artifact->添加web application Archive存档->for exploded添加成功后就可以看到war包生成,这里有个build on make 看网上说可以勾上。这次重新启动tomcat服务器就可以在out 文件夹里自动生成war包了,如果要用war包直接拖出来用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Charles Ray

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值