对于工作中的项目,我们正在考虑使用Eclipse的Maven插件来自动化我们的构建。现在,这个过程比它应该做的要复杂得多,我们希望Maven能将事情简化为一键构建。
我的问题是,是否存在使用Maven插件将现有Eclipse Java项目转换为Maven项目的向导或自动导入器? 或者我应该创建一个新的Maven项目并手动复制所有源文件、库等等。
对于工作中的项目,我们正在考虑使用Eclipse的Maven插件来自动化我们的构建。现在,这个过程比它应该做的要复杂得多,我们希望Maven能将事情简化为一键构建。
我的问题是,是否存在使用Maven插件将现有Eclipse Java项目转换为Maven项目的向导或自动导入器? 或者我应该创建一个新的Maven项目并手动复制所有源文件、库等等。
当前回答
我也遇到了同样的问题,想要maven化包含大约60个eclipse项目的整个eclipse工作空间。手动这样做需要大量的时间,替代方案也不那么可行。为了解决这个问题,我最终在github上创建了一个名为eclipse-to-maven的项目。由于eclipse没有关于依赖关系的所有必要信息,它会执行以下操作:
Based on <classpathentry/> XML elements in .classpath file, it creates the dependencies on another project, identifies the library jar file and based on its name (for instance jakarta-oro-2.0.8.jar) identifies its version. Currently artifactId and groupId are same as I couldn't find something which could return me the Maven groupId of the dependency based on artifactId. Though this is not a perfect solution it provides a good ground to speed up Mavenisation. It moves all source folders according to Maven convention (like src/main/java) As Eclipse projects having names with spaces are difficult to deal on Linux/Unix environment, it renames them as well with names without spaces. Resultant pom.xml files contain the dependencies and basic pom structure. You have to add required Maven plugins manually.
其他回答
从m2e 0.13.0开始(如果不是更早的话),您可以从上下文菜单将Java项目转换为Maven项目。以下是如何做到的:
右击Java项目弹出上下文菜单 选择“配置>转换为Maven项目”
下面是详细的步骤和屏幕截图。
我也遇到了同样的问题,想要maven化包含大约60个eclipse项目的整个eclipse工作空间。手动这样做需要大量的时间,替代方案也不那么可行。为了解决这个问题,我最终在github上创建了一个名为eclipse-to-maven的项目。由于eclipse没有关于依赖关系的所有必要信息,它会执行以下操作:
Based on <classpathentry/> XML elements in .classpath file, it creates the dependencies on another project, identifies the library jar file and based on its name (for instance jakarta-oro-2.0.8.jar) identifies its version. Currently artifactId and groupId are same as I couldn't find something which could return me the Maven groupId of the dependency based on artifactId. Though this is not a perfect solution it provides a good ground to speed up Mavenisation. It moves all source folders according to Maven convention (like src/main/java) As Eclipse projects having names with spaces are difficult to deal on Linux/Unix environment, it renames them as well with names without spaces. Resultant pom.xml files contain the dependencies and basic pom structure. You have to add required Maven plugins manually.
对于转换到Gradle是类似于Maven:
右键单击项目->子菜单配置->转换为Gradle (STS)项目
如果您只想创建一个默认POM并启用m2eclipse特性:那么我假设您目前没有试图导入的其他自动构建设置,并且我假设您正在谈论m2eclipse插件。
m2eclipse插件在项目上提供了一个右键单击选项来添加默认的pom.xml:
更新的M2E版本
右键单击项目->子菜单配置->转换为Maven项目
旧的M2E版本
右键单击Project ->子菜单Maven ->启用依赖项管理。
这将为该项目启用插件做必要的工作。
回答“是否存在自动导入器或向导?”’据我所知没有。使用上述选项将允许您为现有项目启用m2eclipse插件,从而避免手动复制。您仍然需要实际设置依赖项和其他需要自己构建的东西。
承东的回答是正确的,你应该使用配置>转换为Maven项目。但是,我必须补充的是,自从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安装