eclipse java项目转maven_java - 将现有Eclipse项目转换为Maven项目

java - 将现有Eclipse项目转换为Maven项目

对于正在工作的项目,我们正在考虑使用Eclipse的Maven插件来自动化我们的构建。 现在这个程序远比它应该复杂得多,我们希望Maven能够简化一键构建。

我的问题是,是否有使用Maven插件将现有Eclipse Java项目转换为Maven项目的向导或自动导入程序?或者我应该创建一个新的Maven项目并手动复制所有源文件,库等。

9个解决方案

289 votes

从m2e 0.13.0开始(如果不早于),您可以从上下文菜单中将Java项目转换为Maven项目。 方法如下:

右键单击Java项目以弹出上下文菜单

选择配置> 转换为Maven项目

以下是屏幕截图的详细步骤。

chengdong answered 2019-03-02T08:38:15Z

133 votes

如果你只是想创建一个默认的POM并启用m2eclipse功能:所以我假设你现在没有你想要导入的替代自动构建设置,我假设你在谈论m2eclipse插件。

m2eclipse插件在项目上提供了一个右键单击选项来添加这个默认的pom.xml:

较新的M2E版本

右键单击Project - > 子菜单配置 - > 转换为Maven项目

较旧的M2E版本

右键单击Project - > 子菜单Maven - > 启用依赖关系管理。

这样就可以为该项目启用插件。

要回答'是否有自动导入器或向导?':不是我所知道的。 使用上面的选项将允许您为现有项目启用m2eclipse插件,避免手动复制。 您仍然需要实际设置自己构建所需的依赖项和其他内容。

brabster answered 2019-03-02T08:37:27Z

11 votes

我遇到了同样的问题,希望Mavenise整个eclipse工作区包含大约60个Eclipse项目。 手动这样做需要很多时间,而备选方案并不可行。 为了解决这个问题,我终于在github上创建了一个名为eclipse-to-maven的项目。 由于eclipse没有关于依赖项的所有必要信息,因此它执行以下操作:

基于.classpath文件中的src/main/java XML元素,它在另一个项目上创建依赖项,标识库jar文件并根据其名称(例如jakarta-oro-2.0.8.jar)标识其版本。 目前artifactId和groupId是相同的,我找不到可以返回基于artifactId依赖的Maven groupId的东西。虽然这不是一个完美的解决方案,但它为加速Mavenisation提供了一个良好的基础。

它根据Maven约定移动所有源文件夹(如src/main/java)

由于具有空格名称的Eclipse项目很难在Linux / Unix环境中处理,因此它也会使用没有空格的名称重命名它们。

生成的pom.xml文件包含依赖项和基本pom结构。 您必须手动添加所需的Maven插件。

ShriKant Vashishtha answered 2019-03-02T08:39:11Z

7 votes

右键单击项目名称> 配置> 转换为Maven项目> 点击完成。 在这里,您将添加一些依赖项以下载并添加您期望的jar文件。

这将创建一个自动生成的pom.xml文件。 在eclipse编辑器中以xml格式打开该文件。 在构建标记()之后添加您可以从maven网站复制的依赖项并将其添加到那里。 现在你很高兴。 这些依赖项将自动添加您所需的jar文件。

Omar Faroque Anik answered 2019-03-02T08:39:45Z

5 votes

Chengdong的答案是正确的,你应该使用Configure>Convert to Maven Project.但是,我必须添加转换过程已经大大改进,因为m2e 0.13.0:m2e 1.1+和m2e-wtp 0.16.0+现在可以将现有的eclipse设置转换为maven插件配置。

至于依赖转换问题,您可以尝试JBoss Tools(JBT)4.0 Maven集成功能,其中包含一个实验性转换向导,插入m2e的转换过程:[http://docs.jboss.org/tools/whatsnew/maven/maven-news-4.0.0.Beta1.html]

它并没有假装是最终的解决方案(没有什么可以),它应该可以极大地帮助引导您的Maven转换过程。

另外,仅供参考,这里有一些想法可以增强m2e的转换过程,重构使用Maven布局很可能会在将来实施。

JBT 4.0(需要Eclipse JavaEE Juno)可以从[http://download.jboss.org/jbosstools/updates/stable/juno/]或Eclipse Marketplace安装

Fred Bricon answered 2019-03-02T08:40:47Z

4 votes

这是必要的,因为或多或少,当我们从git导入项目时,它不是maven项目,因此maven依赖项不在构建路径中。

以下是我将一般项目转变为maven项目所做的工作。

一般项目 - > java项目右键单击项目,属性 - >项目构面,单击“java”。此步骤将把一般项目转换为java项目。

java项目 - > maven项目右键单击项目,配置 - >转换为maven项目此时,maven依赖项lib仍然不在构建路径中。项目属性,构建路径,添加库,添加maven依赖项lib

等待几秒钟,当加载依赖项时,项目就准备好了!

moonshang answered 2019-03-02T08:41:59Z

2 votes

有一个命令行程序可以将任何Java项目转换为SBT / Maven项目。

它解析所有jar并尝试根据SHA校验和,类路径或文件名找出正确的版本。 然后它尝试编译源,直到找到工作配置。 还可以给出每个依赖项配置执行的自定义任务。

UniversalResolver 1.0

Usage: UniversalResolver [options]

-s ,... | --srcPaths ,...

required src paths to include

-j ,... | --jars ,...

required jars/jar paths to include

-t /path/To/Dir | --testDirectory /path/To/Dir

required directory where test configurations will be stored

-a ,... | --sbt-tasks ,...

SBT Tasks to be executed. i.e. compile

-d /path/To/dependencyFile.json | --dependencyFile /path/To/dependencyFile.json

optional file where the dependency buffer will be stored

-l | --search

load and search dependencies from remote repositories

-g | --generateConfigurations

generate dependency configurations

-c | --findByNameCount

number of dependencies to resolve by class name per jar

[https://bitbucket.org/mnyx/universalresolver]

Alex answered 2019-03-02T08:42:43Z

1 votes

我的问题是,是否有使用Maven插件将现有Eclipse Java项目转换为Maven项目的向导或自动导入程序?

据我所知,没有什么可以自动将Eclipse项目转换为Maven项目(即修改布局,创建POM,“生成”并使用元数据提供它,检测库及其版本以将它们添加到POM中 等)。 Eclipse只是没有足够的元数据来实现这一点(这正是POM的要点)和/或产生了不错的结果。

或者我应该创建一个新的Maven项目并手动复制所有源文件,库等

在我看来,那将是最好的选择。 创建Maven项目,将源,资源,测试,测试资源复制/移动到各自的目录中,声明依赖项等。

Pascal Thivent answered 2019-03-02T08:43:41Z

1 votes

转换为Gradle类似于Maven:

右键单击Project - > 子菜单配置 - > 转换为Gradle(STS)项目

another answered 2019-03-02T08:44:20Z

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

浪公子

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值