预制条件和spring源码导入eclipse中一样,下面直接给出导入eclipse的步骤。

步骤:

1. 下载struts相应版本的源码 http://struts.apache.org/download.cgi 。我这里下载的是struts-2.3.16-all.zip。下载完成后解压到本地目录。

2. struts的源码是通过maven管理的,所以需要下载maven http://maven.apache.org/download.cgi 。下在完成后同样解压到本地目录,然后配置MAVEN_HOME、PATH环境变量。如果配置正确的话在cmd中输入:mvn -v 能够正确显示其版本号。此外需要修改本地仓库的位置:修改 %MAVEN_HOME%/conf/settings.xml文件,在settings中间配置repository:

 settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>E:/Maven/apache-maven-3.1.1/repositories</localRepository>
.........

settings.xml

该目录其实就是指定本地仓库的位置,也就是后续通过maven下载的包默认都放到该路径下。

3. 进入struts源码根路径下的src文件夹,可以看到一个pom文件。其实我们这时候就可以直接打开控制台输入: mvn eclipse:eclipse 来进行编译。不过这样后面会碰到编译失败的问题,分析后发现其实需要注释掉两个地方,一个是src文件夹下的pom.xml文件中:

 <modules>
<module>xwork-core</module>
<module>core</module>
<module>apps</module>
<module>plugins</module>
<!-- 注释掉这两个子模块 -->
<!--<module>bundles</module>
<module>archetypes</module>-->
</modules>

src/pom.xml

一个是src/app/pom.xml中:

 <modules>
<module>blank</module>
<!-- 注释掉这个模块 -->
<!-- <module>jboss-blank</module> -->
<module>mailreader</module>
<module>portlet</module>
<module>showcase</module>
<module>rest-showcase</module>
</modules>

src/app/pom.xml

注释掉之后在src目录下打开控制台输入: mvn eclipse:eclipse 即可。

4. eclipse需要安装maven插件。可以在eclipse的 help--->marketplace中搜索maven,然后安装如下版本即可:

安装完成之后,打开 windows--->preferences,搜索maven,配置instalations为MAVEN_HOME和user settings为MAVEN_HOME/conf/settings.xml即可:

4. 编译完成之后即可在eclipse中进行导入。实际上我们只需导入: core 和 xwork-core两个工程即可,其他工程用不到。

接下来就可以随意的对struts源码进行调试了。

将struts源码导入eclipse的更多相关文章

  1. spring源码解析——spring源码导入eclipse

    一.前言     众所周知,spring的强大之处.几乎所有的企业级开发中,都使用了spring了.在日常的开发中,我们是否只知道spring的配置,以及简单的使用场景.对其实现的代码没有进行深入的了 ...

  2. Tomcat源码导入eclipse的步骤

    Tomcat源码导入eclipse 一.下载源码 1.  进入Apache 官网:http://tomcat.apache.org/ 2.  在左边侧选择要下载的源码的版本. 3.  或者直接通过Ar ...

  3. tomcat源码导入eclipse步骤

    1. 获取源代码 方式一:从官网http://tomcat.apache.org/download-70.cgi 直接下载,官网提供了Binary 和 Source Code两种下载方式,要研究tom ...

  4. Tomcat源码导入Eclipse测试

    想要研究下Tomcat的体系结构或者源码,最好将Tomcat的源码导入到ide中,编写实例进行代码跟踪(debug). 这里参考了网上一些资料,将自己操作过程记个流水账. 准备: 1.Tomcat源码 ...

  5. tomcat源码导入eclipse

    1. 获取源代码 方式一:从官网http://tomcat.apache.org/download-70.cgi 直接下载,官网提供了Binary 和 Source Code两种下载方式,要研究tom ...

  6. 如何将OpenTSDB源码导入eclipse

    OpenTSDB的官网上介绍了如何将OpenTSDB源码导入eclipse,官方链接,但步骤超级繁琐,还有一个简便方法,下面以导入OpenTSDB2.0.0为例. 1. 下载OpenTSDB2.0.0 ...

  7. 将github上的项目源码导入eclipse详细教程

    将github上的项目源码导入eclipse详细教程 学习了: http://blog.csdn.net/itbiggod/article/details/78462720

  8. 将Android源码导入eclipse中的方法以及编译Android源码指定模块

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/53365659 将android源码导入eclipse.androidstudio. ...

  9. Dubbo源码导入Eclipse遇到的问题

    1.怎么将Dubbo源码导入到Eclipse 方法一: 打开Eclipse,File-->Import-->maven-->Exsting Maven Projects,选择dubb ...

随机推荐

  1. js替换指定字符串

    // var a = "212"; // var b = []; // for(var i=0;i<a.length;i++){ // if(a[i]=="1&qu ...

  2. C# 理解泛型

    出处:http://www.tracefact.net/CSharp-Programming/Generics-In-CSharp.aspx 术语表 generics:泛型type-safe:类型安全 ...

  3. 分享几个cocos2dx的小游戏

    先上几个自己写的,因为最近要用cocos2dx,所以就边学边开发几个小游戏玩玩,有捕鱼,连连看,还有打地鼠!都不算完整的项目,不过拿来学习还是可以的,或者在基础上再二次开发,扩展自己! 1:捕鱼的 先 ...

  4. ASP.NET Core学习零散记录

    赶着潮流听着歌,学着.net玩着Core 竹子学Core,目前主要看老A(http://www.cnblogs.com/artech/)和tom大叔的博客(http://www.cnblogs.com ...

  5. [Latex]实现行内高亮

    Latex的行内高亮 前两天想要在做的小操作系统实验指导书里使用行内高亮,一开始虽然有命令 \mint{Language}|contents| 但是无奈只能实现跳行高亮,即不能实现行内高亮.即代码高亮 ...

  6. JavaScript中经典方法

    jQuery()通过name名称获取当前name中value数组 /** 获取input中name属性相同的 value数组 */ function my_array_name(m){ var val ...

  7. AutoMapper配置方法

    在Mvc开发中,我们经常需要构建一个viewModel出来供页面使用,在PO和VO之间相互传值的时候,如果实体字段比较多的时候,那么传值将变得异常麻烦,也使得代码非常的臃肿.AutoMapper可以帮 ...

  8. JAVA - package与import解析(一)

    一.为什么要引入package和import?这个问题和c++中引入命名空间是一样的,也是为了解决重名问题.java通过包机制来解决重名问题,也就相当于给重名的代码加一系列前缀,从而达到唯一标识的作用 ...

  9. 【iOS】FMDB封装,查询自动mapping

    sqlite几乎所有的App都会用到,但是系统自带的sqlite API是用C语言写的,非常不友好,用起来非常不便,通常我们使用第三方封装好的工具,例如:FMDB(https://github.com ...

  10. Python入门版

    一.前言 陆陆续续学习Python已经近半年时间了,感觉到Python的强大之外,也深刻体会到Python的艺术.哲学.曾经的约定,到现在才兑现,其中不乏有很多懈怠,狼狈. Python入门关于Pyt ...