将已有的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. JavaScript进阶之原型链

    对象 function f1(){ }; typeof f1 //"function"函数对象 var o1 = new f1(); typeof o1 //"objec ...

  2. 容器配置https

    生成秘钥库 通过jdk的keytool工具生成秘钥库 keytool -genkeypair -alias "localhost" -keyalg "RSA" ...

  3. CSU 1446 Modified LCS 扩展欧几里得

    要死了,这个题竟然做了两天……各种奇葩的错误…… HNU的12831也是这个题. 题意: 给你两个等差数列,求这两个数列的公共元素的数量. 每个数列按照以下格式给出: N F D(分别表示每个数列的长 ...

  4. 一个最不可思议的MySQL死锁分析

    1    死锁问题背景    1 1.1    一个不可思议的死锁    1 1.1.1    初步分析    3 1.2    如何阅读死锁日志    3 2    死锁原因深入剖析    4 2. ...

  5. 三 Client 如何找到正确的 Region Server

    客户端在进行put.delete.get等操作的时候,它都需要数据到底存在哪个Region Server上面,这个定位的操作是通过 Connection.locateRegion方法来完成的. loc ...

  6. Android之Handler源代码深入解析

    闲着没事.就来看看源代码,看看源代码的各种原理,会用仅仅是简单的,知道为什么才是最牛逼的. Handler源代码分析那,从使用的步骤来边用边分析: 1.创建一个Handler对象:new Handle ...

  7. rgba

    正反两面展示效果 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head& ...

  8. 流水线技术原理和Verilog HDL实现

    所谓流水线处理,如同生产装配线一样,将操作执行工作量分成若干个时间上均衡的操作段,从流水线的起点连续地输入,流水线的各操作段以重叠方式执行.这使得操作执行速度只与流水线输入的速度有关,而与处理所需的时 ...

  9. delete 用法总结

    // delete 删除 // 语法: boolean delete 数据; // 在当前作用域上删除数据 // 用法: // 1, 删除数组中的一个元素 // 2, 删除一个对象的属性或方法 // ...

  10. 如何使用通用pe工具箱破解开机密码

    下载最新版的通用pe工具箱将u盘制作成启动盘,接着重启连续按热键进入到bios系统下,设置u盘为第一启动,保存重启. 1.这时候会进入通用pe工具箱的选择界面,我们选择第八个“运行Windows登陆密 ...