从 m2e 0.13.0(如果不早于)开始,您可以从上下文菜单中将 Java 项目转换为 Maven 项目。方法如下:
右键单击 Java 项目以弹出上下文菜单
选择配置 > 转换为 Maven 项目
这是带有屏幕截图的 detailed steps。
如果您只想创建一个默认 POM 并启用 m2eclipse 功能:所以我假设您当前没有尝试导入的替代自动构建设置,并且我假设您正在谈论 m2eclipse 插件。
m2eclipse 插件在项目上提供了一个右键单击选项来添加这个默认的 pom.xml:
较新的 M2E 版本
右键单击项目 -> 子菜单配置 -> 转换为 Maven 项目
较旧的 M2E 版本
右键单击项目 -> 子菜单 Maven -> 启用依赖管理。
这将做为该项目启用插件所必需的。
回答“是否有自动导入器或向导?”:我不知道。使用上面的选项将允许您为现有项目启用 m2eclipse 插件,从而避免手动复制。您仍然需要实际设置依赖项和其他您需要自己构建的东西。
我遇到了同样的问题,想对包含大约 60 个 Eclipse 项目的整个 Eclipse 工作区进行 Mavenise。手动执行此操作需要大量时间,并且替代选项并不可行。为了解决这个问题,我最终在 github 上创建了一个名为 eclipse-to-maven 的项目。由于 eclipse 没有关于依赖项的所有必要信息,它执行以下操作:
基于 .classpath 文件中的
它根据 Maven 约定移动所有源文件夹(如 src/main/java)
由于带有空格的 Eclipse 项目很难在 Linux/Unix 环境中处理,因此它也将它们重命名为不带空格的名称。
生成的 pom.xml 文件包含依赖项和基本 pom 结构。您必须手动添加所需的 Maven 插件。
.classpath
和 .project
文件)?您能否在答案中添加如何使用您的插件来 mavenize 一个简单的 JavaSE 项目 - 目录结构的实际变化是什么?
右键单击项目名称 > 配置 > 转换为 Maven 项目 > 单击完成。在这里,您将添加一些依赖项以下载并添加您预期的 jar 文件。
这将创建一个自动生成的 pom.xml 文件。在 Eclipse 编辑器中以 xml 格式打开该文件。在构建标记 (</build>
) 之后添加您可以从 maven 网站复制的依赖项并将它们添加到那里。现在你可以走了。这些依赖项会自动添加你需要的 jar 文件。
城东的答案是正确的,你应该使用Configure>Convert to Maven Project
。但是,我必须补充一点,自从 m2e 0.13.0 以来,转换过程有了很大的改进:m2e 1.1+ 和 m2e-wtp 0.16.0+ 现在可以 convert the existing eclipse settings into maven plugin configuration 了。
至于依赖转换问题,你可以试试 JBoss Tools (JBT) 4.0 Maven 集成功能,它包含一个实验性的转换向导,插入到 m2e 的转换过程中:http://docs.jboss.org/tools/whatsnew/maven/maven-news-4.0.0.Beta1.html。
它并不假装是最终解决方案(没有什么可以),它应该极大地帮助引导您的 Maven 转换过程。
此外,仅供参考,这里是 some ideas to enhance m2e's conversion process,重构以使用 Maven 布局很可能在未来实现。
JBT 4.0(需要 Eclipse JavaEE Juno)可以从 http://download.jboss.org/jbosstools/updates/stable/juno/ 或 Eclipse Marketplace 安装
这是必要的,因为或多或少,当我们从 git 导入项目时,它不是 maven 项目,因此 maven 依赖项不在构建路径中。
这是我将一般项目转变为 maven 项目所做的工作。
一般项目-->java项目右键项目,属性->项目方面,点击“java”。这一步会将一般项目变成java项目。
java project --> maven project 右键project,configure-->convert to maven project 此时maven依赖lib还没有在构建路径中。项目属性,构建路径,添加库,添加maven依赖库
并等待几秒钟,当依赖项加载完毕后,项目就准备好了!
有一个命令行程序可以将任何 Java 项目转换为 SBT/Maven 项目。
它解析所有 jars 并尝试根据 SHA 校验和、类路径或文件名找出正确的版本。然后它会尝试编译源代码,直到找到有效的配置。也可以给出每个依赖配置执行的自定义任务。
UniversalResolver 1.0
Usage: UniversalResolver [options]
-s <srcpath1>,<srcpath2>... | --srcPaths <srcpath1>,<srcpath2>...
required src paths to include
-j <jar1>,<jar2>... | --jars <jar1>,<jar2>...
required jars/jar paths to include
-t /path/To/Dir | --testDirectory /path/To/Dir
required directory where test configurations will be stored
-a <task1>,<task2>... | --sbt-tasks <task1>,<task2>...
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 <value> | --findByNameCount <value>
number of dependencies to resolve by class name per jar
https://bitbucket.org/mnyx/universalresolver
我的问题是,是否有使用 Maven 插件将现有 Eclipse Java 项目转换为 Maven 项目的向导或自动导入器?
据我所知,没有什么可以自动将 Eclipse 项目转换为 Maven 项目(即修改布局、创建 POM、“生成”并为其提供元数据、检测库及其版本以将它们添加到 POM , ETC)。 Eclipse 只是没有足够的元数据来实现这一点(这正是 POM 的重点)和/或产生体面的结果。
或者我应该创建一个新的 Maven 项目并手动复制所有源文件、库等
在我看来,这将是最好的选择。创建一个 Maven 项目,将源、资源、测试、测试资源复制/移动到各自的目录中,声明依赖项等。
转换为 Gradle 类似于 Maven:
右键单击项目 -> 子菜单配置 -> 转换为 Gradle (STS) 项目