将已有的Eclipse项目转化为Maven项目

我们之前在Eclipse IDE完成的Java命令行项目、Java Web项目也使用了构建工具——Ant,它帮助我们编译、运行Java源代码(无需我们自己调用javacjava等命令来进行重复、繁琐的构建任务)。以Java项目为例,它的目录结构一般是这样的:

.
├── bin

│ └── com

│ └── tianmaying

│ └── Test.class

└── src

└── com

└── tianmaying

└── Test.java

Eclipse/Ant默认将项目目录下的src文件夹作为项目源代码文件夹,并编译其中的源代码,最终的输出结果(.class文件)放在了bin目录下。运行Test类中的main函数也是使用bin目录下对应的字节码文件。

使用Maven来管理项目,本质上是将项目的目录结构改为Maven的约定方式(例如src/main/java目录存放Java源代码文件)。

手动转换


首先,在项目根目录下创建pom.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.tianmaying</groupId>

<artifactId>to-maven-project</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>ToMavenProject</name>

<build>

<plugins>

<plugin>

<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>

<configuration>

<source>1.8</source>

<target>1.8</target>

</configuration>

</plugin>

</plugins>

</build>

</project>

接下来创建src/main/java文件夹,并将所有源代码从原先的src目录下移动过来(保持目录结构不变):

.
├── pom.xml

└── src

└── main

└── java

└── com

└── tianmaying

└── Test.java

接下来运行mvn clean install应该可以看到成功的消息,但是在Eclipse中,刷新项目后你可能会看到类似这样的错误消息:

这是因为Eclipse仍然认为当前项目是使用Ant进行构建的,为此,我们需要告知Eclipse我们使用的是Maven!

鼠标右键单击项目,然后选择【Configure】->【Convert to Maven Projects…】,此时项目图标的左上角会出现一个M字样

但是此时Eclipse的配置中,项目的源代码文件仍然是src

点击【Remove】按钮将其移除,并【Add Folder】将src/main/java添加即可。当然在Remove后我们也可以不添加,而是保存退出,接下来右键点击项目,【Maven】->【Update
Project】,让Eclipse自动判断项目类型并设置正确的源代码目录。

Eclipse自动配置

鼠标右键单击项目,然后选择【Configure】->【Convert to Maven Projects…】,此时项目图标的左上角会出现一个M字样

如果我们不创建pom.xml,直接让Eclipse来帮助我们创建也是没有问题的,在上述步骤完成后(请自行填入Maven所需的groupIdartifactIdname等信息)后,Eclipse会自动创建一个pom.xml,内容和我们手动创建的几乎没有区别,唯一的不同在于它发现我们的源代码在src文件夹下,而手动指定了源代码目录的位置:

<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.tianmaying</groupId>

<artifactId>to-maven-project</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>ToMavenProject</name>

<build>
<sourceDirectory>src</sourceDirectory>

<plugins>

<plugin>

<artifactId>maven-compiler-plugin</artifactId>

<version>3.5.1</version>

<configuration>

<source>1.8</source>

<target>1.8</target>

</configuration>

</plugin>

</plugins>

</build>

</project>

这样的好处在于我们不需要修改任何配置,但是我们仍然推荐将代码结构修改为Maven的默认约定(src/main/java),如果这样做,不要忘记删除这一行<sourceDirectory>src</sourceDirectory>

版权声明

将已有的Eclipse项目转化为Maven项目的更多相关文章

  1. 把Eclipse项目转换成Maven项目

    把Maven项目转换成Eclipse项目只要使用Maven的Eclipse插件就能做到 mvn eclipse:eclipse 其实Maven的Eclipse插件也有把Eclipse项目转换成Mave ...

  2. eclipse中创建一个maven项目

    1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...

  3. eclipse项目改为maven项目导致svn无法比较历史数据的解决办法

    这个问题没有找到合适的答案,最终自己想出了一个解决方案,在此记录下. 问题描述 在将老的eclipse项目重构为maven项目时,我这边是新建了一个maven项目,然后将对应的数据分别放到相应的位置, ...

  4. eclipse 将javaWeb项目转化成maven项目

      eclipse 将javaWeb项目转化成maven项目 CreateTime--2018年4月18日16:04:18 Author:Marydon 1.首先,maven项目的标准目录 2.web ...

  5. <转>创建支持eclipse的多模块maven项目

    如何使用eclipse创建Maven工程及其子模块 1,首先创建一个父类工程   子模块继承父类工程      并在父类工程的pom.xml文件中定义引入的jar及其版本号     子模块可以引用 2 ...

  6. 如何将 Java 项目转换成 Maven 项目

    本文内容 Java 项目 Maven 项目 Java 项目转换成 Maven 项目 本文主要介绍如何将 Java 项目转换成 Maven 项目.首先要明确的是,用 Maven 管理 Java 项目的确 ...

  7. 转:如何将 Java 项目转换成 Maven 项目

    如何将 Java 项目转换成 Maven 项目 本文内容 Java 项目 Maven 项目 Java 项目转换成 Maven 项目 本文主要介绍如何将 Java 项目转换成 Maven 项目.首先要明 ...

  8. Myeclipse Java项目转换成Maven项目

    1.在Eclipse中Java项目转换成Maven项目可以在项目右键-->configure-->Convert Plug-in projects..  就可以.而在myeclipse中项 ...

  9. Maven 学习笔记——将普通的Java项目转换成Maven项目(3)

    将一个普通的java项目转换成Maven项目并不是一个很大的任务,仅仅只需要下面的几步就能将转换成功.下面我是用一个简单的Selenium测试小demon作为例子来说的. 移调项目中所有关联的Libr ...

随机推荐

  1. MFC的学习路线

    首先,MFC是比较难的!比C#和VB要难得多.MFC是基于C++的.首先C++必须熟悉.MFC主要是学习里面的控件的使用. 建议学习路线: 1. 易语言中文编程从入门到精通: https://deta ...

  2. windows用xstart远程连接linux图形用户界面

    转载:https://blog.csdn.net/yabingshi_tech/article/details/51839379 双击xstart 输入:/usr/bin/xterm -ls -dis ...

  3. 在ubuntu上使用华为的3G无线上网卡 - usb_modeswitch

    众所周知,华为或者中兴的无线上网卡是比较好用的,U盘一样的东西,插进电脑的Usb口就能用,但是,这只是针对windows操作系统而言. 对于linux系统,该设备是无法自动加载驱动的. 因此,需要用到 ...

  4. 洛谷P1006 传纸条 (棋盘dp)

    好气,在洛谷上交就过了,在caioj上交就只有40分 之前在51nod做过这道题了. https://blog.csdn.net/qq_34416123/article/details/8180902 ...

  5. 做一个萌萌哒的button之box-shadow

    接上篇:http://blog.csdn.net/u010037043/article/details/47035077 一.box-shadow box-shadow是给元素块加入周边阴影效果. b ...

  6. 小白学开发(iOS)OC_ 经常使用结构体(2015-08-14)

    // //  main.m //  经常使用结构体 // //  Created by admin on 15/8/13. //  Copyright (c) 2015年 admin. All rig ...

  7. BZOJ1045: [HAOI2008]糖果传递&BZOJ1465: 糖果传递&BZOJ3293: [Cqoi2011]分金币

    [传送门:BZOJ1045&BZOJ1465&BZOJ3293] 简要题意: 给出n个数,每个数每次可以-1使得左边或者右边的数+1,代价为1,求出使得这n个数相等的最小代价 题解: ...

  8. hdoj--1342--Lotto(dfs)

    Lotto Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  9. 35.QQ大数据模型

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...

  10. 2015合肥网络赛 HDU 5492 Find a path 动归

    HDU 5492 Find a path 题意:给你一个矩阵求一个路径使得 最小. 思路: 方法一:数据特别小,直接枚举权值和(n + m - 1) * aver,更新答案. 方法二:用f[i][j] ...