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

本文详细介绍如何将普通项目转换为Maven项目,包括创建pom.xml文件、调整目录结构、导入依赖、编译打包及常见问题解决。通过具体步骤和实例,帮助读者理解Maven在项目管理中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇博客要点如下:

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

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

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

maven的使用和爬过的坑

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

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

idea的使用:

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

IntelliJ IDEA操作总结

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

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

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

TIM图片20190510082750.png

  • 创建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上面有上百个(比如说我举例的这个项目),可以看到,非常多的依赖?

TIM图片20190510082842.png
那么我怎么知道怎么导入相关jar包的依赖呢?

首先,你要对你自己使用的jar包和版本有一个最基本的了解,比如说我的项目里用了hadoop, 版本是2.7.1,为此,我引入了下面的依赖:
    <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common -->
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-common</artifactId>
    <version>2.7.1</version>
</dependency>

如下图所示 :

TIM图片20190510082854.png

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

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

netty-3.7.0.Final.jar

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

TIM图片20190510082916.png

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

TIM图片20190510082934.png

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

TIM图片20190510082944.png

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

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

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

对项目进行编译:

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

在idea端操作方法如下图 :

TIM图片20190511094723.png

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

TIM图片20190511101640.png

删除多余的目录:

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

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

TIM图片20190511.png

三. 遇到的问题
  • 编译时报错 : [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或者更高版本

设置方法如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DQfbbPTj-1601033237036)(https://i.loli.net/2019/05/10/5cd4c6874a5b8.png)]

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

后面我想到了我刚刚使用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遇到的问题总结

### 将普通项目转换Maven项目并导入到IDEA 为了将现有Java项目转换Maven项目并在IntelliJ IDEA中成功配置,需执行一系列特定操作来确保项目的结构和依赖关系被正确识别。 #### 创建`pom.xml` 在项目根目录下创建名为`pom.xml`的文件。此文件定义了构建过程以及所需库的信息。对于希望集成Spring Data MongoDB的情况,应包含如下所示的内容[^1]: ```xml <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.example</groupId> <artifactId>demo-project</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.0.0.M5</version> </dependency> <!-- 可能还需要其他依赖项 --> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> </build> </project> ``` #### 导入至IDEA 完成上述设置之后,在IDEA里打开该文件夹作为新项目时会自动检测到这是一个Maven工程,并提示是否要启用Maven支持。点击确认后,IDE将会下载必要的库并将它们链接到工作区当中去。 另外一种方法是在已经存在的非Maven项目上右键单击,选择`Add Framework Support...`, 接着勾选`Maven`选项,最后按照向导指示完成剩余步骤即可实现相同效果。 通过这些措施可以顺利地把传统形式的应用程序转变为基于Apache Maven管理工具的新形态解决方案,从而简化开发流程中的许多方面,比如版本控制、自动化测试等。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值