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