普通 Java 项目转换为 Maven 项目
普通 Java 项目转换为 Maven 项目
本文为原创文章,转载请注明出处。源码已分享至GitHub.
本文提供一个完整可行的将遗留项目转换为Maven项目的步骤。至于转换Maven构建项目的好处不在本文涉及范围之内,希望了解的读者可以使用
持续集成、自动化测试 与 Maven
等进行搜索
使用工具
- Eclipse Neon (4.6)
- JBoss Tools 4.4.2.Final
转换步骤
- 在Eclipse Marketplace 安装
JBoss Tools 4.4.2.Final
插件
选中待转换的项目,“右键 > Configure > Convert to Plug-in Projects”
在弹出框填写Maven项目的GAV信息和打包信息(Java Web项目使用war,Java项目使用jar)
等待自动识别jar依赖,注意不要勾选“Delete original references from project”
- 记录上一步里的匹配结果,已匹配的(绿色)和未匹配成功的(红叉),建议使用截图将识别记录保存下来。
- 回到项目文件夹,将自动识别成功的jar删除。接下来开始处理无法匹配的依赖包
- 将剩余未成功匹配的jar包移动到另一个位置,新建名为test的项目,将这些jar加入该项目的
build path
。 在test项目的“Referenced Libraries > ”之下依次点击jar左侧的箭头按钮查看jar的类信息
打开jar的
META-INF
目录,这个时候有两种情况:由Maven打包的jar和不是的。Maven打包的jar处理起来很简单,META-INF
下将可以看到名为maven
文件夹打开它知道最里层会看到一个pom.properites
的文件,这个文件里含有该jar的Maven依赖信息将该信息填入pom即可。示例如下:
- 处理非Maven打包的同时也不在Maven中央仓库存在的依赖包,这样的依赖包一般是非开源的私有包。这是自己编织该jar的Maven GAV信息,将该信息填入pom,并将将jar发布到自己建立的代理仓库(一般使用Nexus OSS搭建)即可。
- 回到被转换的项目,在Eclipse里按 “Alt+F5” 更新Maven即可看到构建成功。
至于其他既不能在jar里找到
pom.properites
,看上去由不像是私有包,那么可以在[search.maven.org](http://search.maven.org/#advancedsearch)
进行搜索.
普通 Java 项目转换为 Maven 项目的更多相关文章
- idea将普通项目转换为maven项目
方式一 1.在项目根目录下,新建文件 pom.xml,并填写好内容. 2.在pom.xml文件上,右键 Add as Maven Project 或 在项目上,右键 Add Framework Sup ...
- intellij idea 如何将一个普通项目转换为maven项目
1.工程文件下新建文件pom.xml,并填写好内容. 2.在pom.xml 文件上右键 Add as Maven Project.
- idea中如何将一个普通项目转换为maven项目
在pom.xml 文件上右键 Add as Maven Project即可.
- 一般项目转为Maven项目所遇到的问题
最近搞CI,准备使用Maven,但以前的项目不是Maven项目,需要把项目转换为Maven项目.这遇到几个小问题,一是jar包的依赖,二是从本地仓库取出依赖jar包. 由于没有本地仓库,要手动添加ja ...
- eclipse中 将java项目转换为web项目
来自:http://jadethao.iteye.com/blog/1331308 eclipse中 将java项目转换为web项目 1.找到项目工作空间目录,打开.project文件,并修改文件, ...
- eclipse中 将java项目转换为web项目 博客分类: Tomcat
1.找到项目工作空间目录,打开.project文件,并修改文件, 修改如下: 找到:<natures> </natures>代码段,在代码段中加入如下内容并保存: ...
- Eclipse java项目转换为web项目
1.打开.project文件,并修改文件, 修改如下: 找到:<natures> </natures>代码段,在代码段中加入如下内容并保存: <nature>org ...
- Eclipse中 将java Gradle项目转换为web项目
1.找到项目工作空间目录,打开.project文件,并修改文件, 修改如下: 找到:<natures> </natures>代码段,在代码段中加入如下内容并保存: ...
- 将studio项目 转换为eclipse项目
总会有些奇怪的事情,比如,有的人就有将studio项目 转换为eclipse项目的需求 首先,不要因为编译原因而放弃.studio项目是完全可以转换成eclipse的 本站的开源代码板块有很多项目都是 ...
随机推荐
- 删除sql server中重复的数据
原文:删除sql server中重复的数据 with list_numbers as( select Name, AuthorOrTime, Url, Price, EstimatePrice, Si ...
- SQLCMD的介绍
原文:SQLCMD的介绍 sqlcmd -S SERVERNAME -U USERNAME -P PASSWORD -i filename.sql 下面的内容是详细介绍sqlcmd的,有兴趣的朋友可以 ...
- Android 实现用户列表信息的功能,然后选择删除幻灯片删除功能
在项目开发过程中.经常须要对用户列表的信息进行删除的操作.Android中经常使用的删除操作方式有两种 .一种就是类似微信的滑动出现删除button方式,另一种是通过CheckBox进行选择.然后通过 ...
- 【转】仿QQ5.0侧滑菜单ResideMenu
本文由孙国威 原创.如需转载,请注明出处! 原文:http://blog.csdn.net/manoel/article/details/39013095 为了后续对这个项目进行优化,比如透明度动画. ...
- NFC高级
高级 NFC 本文档介绍了高级的NFC主题,如各种标签技术,NFC标签写入和前台发布,它允许即使当其他应用程序过滤器相同的时候,应用程序在前台处理Intent. Tag技术支持工作 当使NFC Tag ...
- 存储过程的参数问题与C#中的调用
1. 带参数的存储过程 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[sp_select_gua] @num ...
- MVC UnitOfWork EntityFramework架构
MVC UnitOfWork EntityFramework架构,网站速度慢的原因总结! 最近参考使用了郭明峰的一套架构来做新的项目架构,这套架构看起来还是不错的,先向小郭同学的分享精神致敬! (郭同 ...
- sqlserver中数据的四种插入方式
1.insert into stuInfo(name,stuId) values('李洁','19291727')insert into stuInfo(name,stuId) values('李康' ...
- Python实现LDAP用户名密码验证
网上借鉴了不少东西,下面是python代码,备份后用. 思路,因为每个用户的组都不一样,这样就导致了dn不一致的情况, 据需要先根据用户名获取该用户的dn,然后再bind用户名和密码进行验证. 反正是 ...
- 用Python实现gmail邮箱服务,实现两个邮箱之间的绑定(上)
一.本程序的起源 当我决定去中科院实习的时候,我给刘奎恩老师发了封邮件.我对此事是非常看重的,因此经常使用浏览器,打开gmail去查看刘老师有没有给我回复.因为gmail的新邮件推送的功能仅限于打开浏 ...