普通 Java 项目转换为 Maven 项目

本文为原创文章,转载请注明出处。源码已分享至GitHub.

本文提供一个完整可行的将遗留项目转换为Maven项目的步骤。至于转换Maven构建项目的好处不在本文涉及范围之内,希望了解的读者可以使用持续集成、自动化测试 与 Maven等进行搜索

使用工具

  • Eclipse Neon (4.6)
  • JBoss Tools 4.4.2.Final

转换步骤

  1. 在Eclipse Marketplace 安装 JBoss Tools 4.4.2.Final 插件

  2. 选中待转换的项目,“右键 > Configure > Convert to Plug-in Projects”

  3. 在弹出框填写Maven项目的GAV信息和打包信息(Java Web项目使用war,Java项目使用jar)

  4. 等待自动识别jar依赖,注意不要勾选“Delete original references from project”

  5. 记录上一步里的匹配结果,已匹配的(绿色)和未匹配成功的(红叉),建议使用截图将识别记录保存下来。
  6. 回到项目文件夹,将自动识别成功的jar删除。接下来开始处理无法匹配的依赖包
  7. 将剩余未成功匹配的jar包移动到另一个位置,新建名为test的项目,将这些jar加入该项目的build path
  8. 在test项目的“Referenced Libraries > ”之下依次点击jar左侧的箭头按钮查看jar的类信息

  9. 打开jar的META-INF目录,这个时候有两种情况:由Maven打包的jar和不是的。Maven打包的jar处理起来很简单,META-INF下将可以看到名为maven文件夹打开它知道最里层会看到一个pom.properites的文件,这个文件里含有该jar的Maven依赖信息将该信息填入pom即可。示例如下:



  10. 处理非Maven打包的同时也不在Maven中央仓库存在的依赖包,这样的依赖包一般是非开源的私有包。这是自己编织该jar的Maven GAV信息,将该信息填入pom,并将将jar发布到自己建立的代理仓库(一般使用Nexus OSS搭建)即可。
  11. 回到被转换的项目,在Eclipse里按 “Alt+F5” 更新Maven即可看到构建成功。
  12. 至于其他既不能在jar里找到pom.properites,看上去由不像是私有包,那么可以在[search.maven.org](http://search.maven.org/#advancedsearch)进行搜索.

普通 Java 项目转换为 Maven 项目的更多相关文章

  1. idea将普通项目转换为maven项目

    方式一 1.在项目根目录下,新建文件 pom.xml,并填写好内容. 2.在pom.xml文件上,右键 Add as Maven Project 或 在项目上,右键 Add Framework Sup ...

  2. intellij idea 如何将一个普通项目转换为maven项目

    1.工程文件下新建文件pom.xml,并填写好内容. 2.在pom.xml 文件上右键 Add as Maven Project.

  3. idea中如何将一个普通项目转换为maven项目

    在pom.xml 文件上右键 Add as Maven Project即可.

  4. 一般项目转为Maven项目所遇到的问题

    最近搞CI,准备使用Maven,但以前的项目不是Maven项目,需要把项目转换为Maven项目.这遇到几个小问题,一是jar包的依赖,二是从本地仓库取出依赖jar包. 由于没有本地仓库,要手动添加ja ...

  5. eclipse中 将java项目转换为web项目

    来自:http://jadethao.iteye.com/blog/1331308 eclipse中 将java项目转换为web项目 1.找到项目工作空间目录,打开.project文件,并修改文件,  ...

  6. eclipse中 将java项目转换为web项目 博客分类: Tomcat

      1.找到项目工作空间目录,打开.project文件,并修改文件, 修改如下:      找到:<natures> </natures>代码段,在代码段中加入如下内容并保存: ...

  7. Eclipse java项目转换为web项目

    1.打开.project文件,并修改文件, 修改如下: 找到:<natures> </natures>代码段,在代码段中加入如下内容并保存: <nature>org ...

  8. Eclipse中 将java Gradle项目转换为web项目

    1.找到项目工作空间目录,打开.project文件,并修改文件, 修改如下:      找到:<natures> </natures>代码段,在代码段中加入如下内容并保存:   ...

  9. 将studio项目 转换为eclipse项目

    总会有些奇怪的事情,比如,有的人就有将studio项目 转换为eclipse项目的需求 首先,不要因为编译原因而放弃.studio项目是完全可以转换成eclipse的 本站的开源代码板块有很多项目都是 ...

随机推荐

  1. 强大的jquery-制作选项卡

    最近在学习jquery,特地把今天写的一个选项卡源码贴出来.只是做只是梳理,大神们请不要吐槽,如果有更好的方法,欢迎指点.谢谢. css <style> #tab div{ width:2 ...

  2. 通过js实现在页面中添加音乐

    代码如下!兼容IE // JavaScript Document function autoPlay(){//自动播放 var myAuto = document.getElementById('my ...

  3. JQUERY 插件开发——MENU(导航菜单)

    JQUERY 插件开发——MENU(导航菜单) 故事背景:由于最近太忙了,已经很久没有写jquery插件开发系列了.但是凭着自己对这方面的爱好,我还是抽了一些时间来过一下插件瘾的.今天的主题是导航菜单 ...

  4. 最初的ajax案例

    ----------------------原始的ajax: function guo() {            var xhr            if (XMLHttpRequest) {  ...

  5. MVC 5 - 将数据从控制器传递给视图

    MVC 5 - 将数据从控制器传递给视图 在我们讨论数据库和数据模型之前,让我们先讨论一下如何将数据从控制器传递给视图.控制器类将响应请求来的URL.控制器类是给您写代码来处理传入请求的地方,并从数据 ...

  6. nhibernate+autofac+mvc的demo

    想自己做一个小的demo.目的是能够提供一个系统架构,在这个基础上,可以快速开发一些小型的系统.

  7. 使用WCF扩展在方法调用前初始化环境

    使用WCF扩展在方法调用前初始化环境 OperationInvoker 介绍 OperationInvoker 是 WCF 运行时模型中在调用最终用户代码前的最后一个扩展点,OperationInvo ...

  8. WPF专业编程指南 - 那些根元素<>的解释

    <Window x:Class="Chapter1_WpfApplication1.MainWindow" xmlns="http://schemas.micros ...

  9. cocos2d(背景图片循环滚动)

    背景图片循环滚动 使用action 实现的: 主要有两个背景图片交替循环滚动:我选的两个背景图片的宽度都是1024的 ,所以定义了#define BGIMG_WIDTH 1024 代码如下: 在Hel ...

  10. Weka开发[2]-分类器类

    这次介绍如何利用weka里的类对数据集进行分类,要对数据集进行分类,第一步要指定数据集中哪一列做为类别,如果这一步忘记了(事实上经常会忘记)会出现“Class index is negative (n ...