将已有的Eclipse项目转化为Maven项目
将已有的Eclipse项目转化为Maven项目
我们之前在Eclipse IDE完成的Java命令行项目、Java Web项目也使用了构建工具——Ant,它帮助我们编译、运行Java源代码(无需我们自己调用javac, java等命令来进行重复、繁琐的构建任务)。以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所需的groupId, artifactId, name等信息)后,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项目的更多相关文章
- 把Eclipse项目转换成Maven项目
把Maven项目转换成Eclipse项目只要使用Maven的Eclipse插件就能做到 mvn eclipse:eclipse 其实Maven的Eclipse插件也有把Eclipse项目转换成Mave ...
- eclipse中创建一个maven项目
1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...
- eclipse项目改为maven项目导致svn无法比较历史数据的解决办法
这个问题没有找到合适的答案,最终自己想出了一个解决方案,在此记录下. 问题描述 在将老的eclipse项目重构为maven项目时,我这边是新建了一个maven项目,然后将对应的数据分别放到相应的位置, ...
- eclipse 将javaWeb项目转化成maven项目
eclipse 将javaWeb项目转化成maven项目 CreateTime--2018年4月18日16:04:18 Author:Marydon 1.首先,maven项目的标准目录 2.web ...
- <转>创建支持eclipse的多模块maven项目
如何使用eclipse创建Maven工程及其子模块 1,首先创建一个父类工程 子模块继承父类工程 并在父类工程的pom.xml文件中定义引入的jar及其版本号 子模块可以引用 2 ...
- 如何将 Java 项目转换成 Maven 项目
本文内容 Java 项目 Maven 项目 Java 项目转换成 Maven 项目 本文主要介绍如何将 Java 项目转换成 Maven 项目.首先要明确的是,用 Maven 管理 Java 项目的确 ...
- 转:如何将 Java 项目转换成 Maven 项目
如何将 Java 项目转换成 Maven 项目 本文内容 Java 项目 Maven 项目 Java 项目转换成 Maven 项目 本文主要介绍如何将 Java 项目转换成 Maven 项目.首先要明 ...
- Myeclipse Java项目转换成Maven项目
1.在Eclipse中Java项目转换成Maven项目可以在项目右键-->configure-->Convert Plug-in projects.. 就可以.而在myeclipse中项 ...
- Maven 学习笔记——将普通的Java项目转换成Maven项目(3)
将一个普通的java项目转换成Maven项目并不是一个很大的任务,仅仅只需要下面的几步就能将转换成功.下面我是用一个简单的Selenium测试小demon作为例子来说的. 移调项目中所有关联的Libr ...
随机推荐
- NodeJS学习笔记 (27)实用工具模块-util(ok)
debuglog(section) 很有用的调试方法.可以通过 util.debuglog(name) 来创建一个调试fn,这个fn的特点是,只有在运行程序时候,声明环境变量NODE_DEBUG=na ...
- Hope is a good thing, maybe the best of things and no good thing ever dies !
- [POI2008]POD-Subdivision of Kingdom(搜索+状压)
题意 给定一个n个点的无向图,要求将点集分成大小相等的两个子集,使两个子集之间的边数最少 (n<=26) 题解 一开始想了半天DP发现不会,去看题解全是搜索. 所以发现C(1326)可以过我就写 ...
- Java基础学习总结(20)——基础语法
一.标识符 二.关键字 三.JAVA基础数据类型 3.1. java常量 3.2. java变量 从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后 ...
- FOJ1205 小鼠迷宫问题 (BFD+递推)
FOJ1205 小鼠迷宫问题 (BFD+递推) 小鼠a与小鼠b身处一个m×n的迷宫中,如图所示.每一个方格表示迷宫中的一个房间.这m×n个房间中有一些房间是封闭的,不允许任何人进入.在迷宫中任何位置均 ...
- MySQL auttoReconnect
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from ...
- HTML学习----------DAY1 第三节
本章通过实例向您演示最常用的 HTML 标签. 提示:不要担心本章中您还没有学过的例子,您将在下面的章节中学到它们. 提示:学习 HTML 最好的方式就是边学边做实验.我们为您准备了很好的 HTML ...
- [Recompose] Refactor React Render Props to Streaming Props with RxJS and Recompose
This lesson takes the concept of render props and migrates it over to streaming props by keeping the ...
- web前端开发——AJAX入门
什么是AJAX AJAX: A New Approach to Web Applications XML AJAX是老技术新思想. 它所包括的内容我们之前都接触过.例如以下: (1)使用XHTML和C ...
- Spark修炼之道(高级篇)——Spark源代码阅读:第十二节 Spark SQL 处理流程分析
作者:周志湖 以下的代码演示了通过Case Class进行表Schema定义的样例: // sc is an existing SparkContext. val sqlContext = new o ...