idea 到myeclipse
在上一篇博客使用maven进行开发过程管理之准备篇中提到了maven的基本概念。IT男罗书全觉得概念我是懂了,但是那些东西似乎离我很远啊。先开发再说吧,
于是IT男罗书全就在svn上取了源代码,并开始导入到本地开发环境中去。三下五除二,点击import,出现熟悉的导入界面。
导入失败,这是怎么回事?问了同事才知道,公司使用的是idea开发环境,而自己用的是eclipse.怎么办呢?放弃自己心爱的eclipse,真痛苦,而且不熟悉会导致开发效率较低。有没有两全其美的办法呢?有的。
想想大家做数据访问层时,hibernate是怎么实现兼容不同数据库的呢?创立中间的一种语言,比如hql,在配置里得知连接的数据库具体类型时,调用其适配功能实现hql-->相应数据库sql的转换。Maven的原理也是类似,提供了pom描述文件来对项目的组成要素做了说明,如src,target,lib等的位置,在命令中得知需要适配哪个开发环境中时,就可以转换过去。这样就给具体开发提供了一定的灵活性。在maven中提供了转换到主流环境eclipse的插件maven-eclipse-plugin,相应转换命令是eclipse:eclipse.对于IDEA也提供了转换到IDEA的插件maven-idea-plugin,转换到相应开发环境的命令是idea:idea.
IT男罗书全在命令行中进入项目所在根目录下,运行mvn eclipse:eclipse,然后导入,成功了。IT男罗书全欣喜万分,在欣喜万分的同时,又疑惑了,maven是怎么做的转换的呢?
其实任何开发环境都是要识别项目特性,才能顺利进行开发的。比如在eclipse项目里面,可以看到有几个基本要素,如像src/main/java文件夹上有个包的,就是源代码目录,源代码目录就是放置用户编写源代码的位置。像target目录,就是生成目标文件的地方,如class文件等。Referenced Libraries就是放置项目依赖的jar包的地方等。
这些项目描述都是在.classpath和.project中说明的。例如.classpath文件:
显然的,可以得出以下几个结论:
- kind="src",path=src/main/java,里面说明了src的位置;
- kind="output”,path=target/classes,说明了target目录的位置;
- kind=“var”,说明的是一个lib的位置。
.project文件中说明了此项目需要的插件,以及使用的builder.
那么maven又是怎么做的呢?其实他也是分析了所有开发环境的共性,而对其概念作了抽象。在下面的代码中说明:
org.apache.maven.plugin.ide.AbstractIdeSupportMojo.java
1: boolean processProject = setup();
2: if ( !processProject )
3: {
4: return;
5: }
6: // 解析得到所有的依赖,形成lib引用
7: IdeDependency[] deps = doDependencyResolution();
8: //绑定source代码和javadoc
9: resolveSourceAndJavadocArtifacts( deps );
10: //生成特定开发环境的配置文件
11: writeConfiguration( deps );
12: reportMissingArtifacts();
这是个template模式的实现,具体的开发环境只要继承AbstractIdeSupportMojo来override其中的writeConfiguration(deps)来生成具体的配置文件。
因此,maven 对开发环境与源代码的隔离提供了强有力的插件支持,兼顾了不同程序员的爱好,从而提高了整体的开发效率。
idea 到myeclipse的更多相关文章
- myeclipse学习总结一(在MyEclipse中设置生成jsp页面时默认编码为utf-8编码)
1.每次我们在MyEclispe中创建Jsp页面,生成的Jsp页面的默认编码是"ISO-8859-1".在这种情况下,当我们在页面中编写的内容存在中文的时候,就无法进行保存.如下图 ...
- 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解
工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...
- MyEclipse生成注册码
今天正在使用的MyEclipse出现了使用过期,在网上发现一个可以生成注册码的程序,现在分享给各位. /** * myEclipse生成注册码 * 点击顶部:MyEclipse --> subs ...
- myeclipse 内存不够用报错PermGen space 和 An internal error has occurred.
最近项目中又增加了新的模块,项目的代码又多了不少.运行的时候总是报如下错误 Exception in thread "http-apr-80-exec-6" java.lang.O ...
- WebLogic的安装和配置以及MyEclipse中配置WebLogic
WebLogic 中间件: 是基础软件的一大类,属于可复用软件的范畴,顾名思义,中间件属于操作系统软件与应用软件的中间,比如:JDK,框架,weblogic. weblogic与tomcat区别 : ...
- MyEclipse对Maven的安装
好记性不如烂笔头,记录一下. 操作系统:windows 7 MyEclipse2015 JDK1.7 maven的下载链接,点这里下载apache-maven-3.0.4-bin.tar.gz. 下载 ...
- MyEclipse 的 配置文件
D:\soft\i\myeclipse10\MyEclipse 10\configuration.settings\org.eclipse.ui.ide.prefs MAX_RECENT_WORKSP ...
- myeclipse 无法启动 java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
把myeclipse10 按照目录完整拷贝到了另外一台电脑, 另外的目录 原安装目录 D\:\soft\i\myeclipse10 新安装目录 E\:\soft\myeclipse10 双击启动失败, ...
- myeclipse学习总结三(MyEclipse文件查找技巧)
一.查找文件 使用快捷键[ctrl+shift+R]弹出弹出文件查找框,如下图所示: 二.查找包含某个字符串的文件 使用快捷键[ctrl+H]在弹出对话框中选File Search选项,然后在第一个文 ...
- myeclipse学习总结二(myeclipse安装svn插件)
1.在myeclipse中要安装svn插件,首先是下载svn插件. 下载地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?fold ...
随机推荐
- mysql常用&实用语句
Mysql是最流行的关系型数据库管理系统,也是目前最常用的数据库之一,掌握其常用的操作语句是必不可少的. 下面是自己总结的mysqp常用&实用的sql语句: 1.mysql -u root - ...
- H5版俄罗斯方块(3)---游戏的AI算法
前言: 算是"long long ago"的事了, 某著名互联网公司在我校举行了一次"lengend code"的比赛, 其中有一题就是"智能俄罗斯方 ...
- codeforces105d Bag of mice ——概率DP
Link: http://codeforces.com/problemset/problem/148/D Refer to: http://www.cnblogs.com/kuangbin/archi ...
- RabbitMQ 安装
Install Erlang from the Erlang Solutions repository or Follow the instructions under "Installat ...
- MapReduce简介
MapReduce简介 参考自[http://www.cnblogs.com/swanspouse/p/5130136.html] MapReduce定义: MapReduce是一种可用于数据处理的编 ...
- JS获取当前日期时间及JS日期格式化
Js获取当前日期时间: var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份( ...
- LVS+Keepalived负载均衡配置
简介 lvs一般是和keepalived一起组合使用的,虽然也可以单独使用lvs,但配置比较繁琐,且可用性也没有前者高. lvs和keepalived组合使用后,配置lvs的VIP和负载均衡就都在ke ...
- 修改mongodb3.0副本集用户密码遇到的坑
最近公司对项目安全方面的问题很是重视,进行了多次各种安全漏洞的扫描,于是乎就扫到了mongodb弱口令的问题. 在项目部署初期,因为大家对这个都不是特别重视,大概是因为觉得反正是内网项目吧,所以mon ...
- C# using 三种使用方式
http://www.cnblogs.com/fashui/archive/2011/09/29/2195061.html 1.using指令. using 命名空间名字.例如: using Syst ...
- mac 10.9开启有道词典取词功能
取词时候,有道词典给出提示,说要去开启辅助功能,但提示的是在mac 10.8上面怎么操作,在10.9的话,就是以下位置去改了. 补充以下: 在mac机器上,实际上大多数的单词都能从自带的词典中查找到. ...