使用idea将普通项目转换为maven项目(超详细)

本篇博客要点如下:

  • 为什么要将普通项目转换为maven项目

  • 如何将普通项目转换为maven项目

    • idea安装和使用
    • 导入项目并创建pom.xml文件
    • 按照标准的maven工程创建目录结构
    • 导入项目需要的依赖
    • 对项目进行编译打包
    • 删除多余的目录
  • 转换过程中遇到的一些问题

一. 为什么要使用maven进行项目管理?

你是否曾经被jar包冲突支配?
你是否有过一个jar包死活不知道该在哪里下载的苦恼?
你是否曾经在使用的jar包进行版本升级的时候束手无策?
你是否曾经在svn,git上面拉取项目的时候要同时拉取几百兆的依赖包而想骂娘?
你是否遇到过在项目打包上线时,
有些依赖需要打到jar包,有些不需要?

如果这些问题你碰到过一个或者多个,那么你就有必要把普通的项目转成maven项目.

对maven不太了解的,也可以参照我之前写过的博客了解maven基本用法,博客链接如下:

maven的使用和爬过的坑

二. idea如何将普通项目转为maven项目?

  接下来就以我之前学习编程,进行练习的测试项目举例:

idea的使用:

   关于idea的使用,不太熟悉的童鞋可以参照我之前写过的博客,博客详细介绍了idea的安装使用和配置,博客链接如下:

IntelliJ IDEA操作总结

导入项目并新建pom.xml文件

  • 导入项目 : 鼠标右键: File --> open --> 选择项目路径

项目本身的目录格式是这样的:

使用idea将普通项目转换为maven项目(超详细)_第1张图片

  • 创建pom.xml文件 : 在项目的根目录下执行:
    File --> new --> File–>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>java-practice</groupId>
    <artifactId>JavaPractice</artifactId>
    <version>1.0-SNAPSHOT</version>

</project>

按照maven项目目录格式创建目录结构

有以下两个关键目录:

  • Java类文件标准目录: src/main/java

      把之前的代码移动到该目录下
      在java目录下,鼠标右键
      Mark Directory as -->Sources Root 
    
  • 资源文件(配置)标准目录: src/main/resources

      资源配置文件移动到resouces目录下
      在resouces目录下,鼠标右键
      Mark Directory as -->Resources Root
    

导入项目依赖

这部分是重点:

在pom.xml导入相关jar包依赖:

有的童鞋可能要问了,我的项目依赖的jar包非常多,在lib上面有上百个(比如说我举例的这个项目),可以看到,非常多的依赖?

使用idea将普通项目转换为maven项目(超详细)_第2张图片
那么我怎么知道怎么导入相关jar包的依赖呢?

首先,你要对你自己使用的jar包和版本有一个最基本的了解,比如说我的项目里用了hadoop, 版本是2.7.1,为此,我引入了下面的依赖:
    

    org.apache.hadoop
    hadoop-common
    2.7.1

如下图所示 :

使用idea将普通项目转换为maven项目(超详细)_第3张图片

可以看到, 这么简单的配置,就导入了好几十个jar包,
所以基本上你上百个jar包,几个依赖配置就搞定了

那么如果实在不知道该怎么导入某些jar包的依赖该怎么办呢?别慌
我随便找个jar包举例:

netty-3.7.0.Final.jar

用压缩工具打开任意一个jar包,进入它的META-INF目录,里面有一个maven文件夹,进入该文件夹,一直往里面点
最底层会有一个pom.xml文件,如下图所示:

使用idea将普通项目转换为maven项目(超详细)_第4张图片

打开这个pom.xml文件, 我们就能找到相应的配置啦!

使用idea将普通项目转换为maven项目(超详细)_第5张图片

把上图标注的几个关键的东西抄到自己的pom.xml里面,然后import changes,再去看我们的依赖:

使用idea将普通项目转换为maven项目(超详细)_第6张图片

可以看到, 修改过的pom.xml已经导入了这个jar包

必要的话,可以直接把他的爸爸抄过来,也就是上面的Parent里面的东西

接下来,如法炮制,把所有需要的依赖全部导入进来

对项目进行编译:

接下来执行mvn clean install 对项目进行编译 
也可以使用mvn clean install -DskipTests跳过单元测试 

在idea端操作方法如下图 :

使用idea将普通项目转换为maven项目(超详细)_第7张图片

如下图所示: 代表编译成功!

使用idea将普通项目转换为maven项目(超详细)_第8张图片

删除多余的目录:

打包编译成功之后,就可以把不必要的目录干掉了!
主要是bin目录和lib目录

最终的目录结构如下图所示,还是非常清爽的!

使用idea将普通项目转换为maven项目(超详细)_第9张图片

三. 遇到的问题

  • 编译时报错 : [ERROR] /E:/softWare/office/idea/myJob/JavaPractice/src/main/java/pers/xmr/java/liuyi/DayFifteen.java:[54,56] -source 1.5 中不支持 diamond 运算符
[ERROR]   (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /E:/softWare/office/idea/myJob/JavaPractice/src/main/java/pers/xmr/java/liuyi/casedemo/util/DBUtil.java:[61,33] -source 1.5 中不支持 multi-catch 语句
[ERROR]   (请使用 -source 7 或更高版本以启用 multi-catch 语句)
[ERROR] /E:/softWare/office/idea/myJob/JavaPractice/src/main/java/pers/xmr/test/Test.java:[13,32] -source 1.5 中不支持静态接口方法
[ERROR]   (请使用 -source 8 或更高版本以启用静态接口方法)
[ERROR] /E:/softWare/office/idea/myJob/JavaPractice/src/main/java/pers/xmr/java/liuyi/DayTwentyOne.java:[13,39] -source 1.5 中不支持 diamond 运算符
[ERROR]   (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /E:/softWare/office/idea/myJob/JavaPractice/src/main/java/pers/xmr/java/liuyi/DayEighteen.java:[56,47] -source 1.5 中不支持 diamond 运算符

报错原因 :

虽然我的jdk设置的是1.8
但是从报错来看明显是它是按照jdk1.5的语法识别的.

我的代码里用到了jdk7和jdk8的语法特性,
导致其无法识别而报错.

解决办法 :

网上找的办法基本上是在idea进行如下设置:

File-->Settings-->Build,Execution,Deployment-->Complier-->Java Compiler --> 把Project bytecode version设置为1.7或者更高版本

设置方法如下图:

使用idea将普通项目转换为maven项目(超详细)_第10张图片

但是这种方法并没有解决我的问题.

后面我想到了我刚刚使用maven的时候好像做过类似的配置来避免这个问题(记忆力实在太差~~)

在pom.xml文件里project标签下面添加如下配置,表示按照jdk8的语法规则来编译和打包

<buaild>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

加入了改配置之后,这个报错得到解决!

maven的使用还会碰到其他问题, 我在之前写的博客里有涉及到我遇到的一些问题:
感兴趣的可以参考,博客链接如下:

maven遇到的问题总结

你可能感兴趣的:(开发工具)