浏览 12224 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-09
思路及实践如下: 1.Elcipse里Project Properties里有Project Reference的设置,说明有这个特性,Java Builder Path里也有引用的Projects设置。 试验:建立两个Java Project A、B,B引用A,设置B的Java Builder Path/Projects引用Project A,则B中的Class可以调用A中的Class,编译和运行都通过。 说明Eclipse对Java Project的解决方案良好。 (Project Reference的设置不知道有什么用处) 2.Web应用,使用Eclipse WTP 按上面的试验设置,(这里的B项目是一个Web项目),编译可以通过,但是运行时找不到A项目中的类。 没有找到有相应的解决方案。 3.Web应用,使用Sysdeo Tomcat Plugin 发现有这个Window/Preferences/Tomcat/Advanced/Add Java Projects to Tomcat classpath设置,将Java项目设置到Tomcat的类路径中,对Tomcat是全局的,有一些不灵活,和其它的缺陷,比如加载这些类的ClassLoader将是SystemClassLoader而不是WebAppClassLoader,这将影响某些资源文件的加载。 另外,我在Tomcat5.5.17上试验这个设置,结果启动Tomcat就出错。 看了Sysdeo的文档,它介绍了DevLoader就专门解决这个问题的。看了一下他的源码,很简单,总共只有200行,基本上的逻辑是,读取Eclipse项目下的.#webclasspath、.classpath文件以获得引用的java类路径,由 DevLoader加载这些项目外的类。 具体操作是: 1)设置Java Builder Path; 2)将Sysdeo Plugin下的DevLoader.zip解压到Tomcat目录/server/classes下,在Tomcat Project/Project Properties/Tomcat/Devloader 中选中Active DevLoader,及选中列表中项目外的classpath。 参考Sysdeo Plugin的ReadmeDevLoader.html. 这样就解决了这个问题,效果是:修改了项目A、B中的代码,不用重起Tomcat,就可以在浏览器中立即看到修改后的效果。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-09
|
|
返回顶楼 | |
发表时间:2007-03-09
先谢谢LZ,可是我的项目最迫切解决的是页面。关于不同的class路径加载,其实都没什么了。可就是本来在不同的目录下的页面合并到一个地方这个搞不定。
就是譬如说我真正的deploy的结构想要这样的: root - user - master root下面有两个目录。user和master,里面存放的都是相关的页面jsp,js之类的文件。 但是在开发环境下。可能user目录是放在/A/root/user,而master是放在/B/root/master A - root - user B - root - master 大约可以说是这样子的情况。 |
|
返回顶楼 | |
发表时间:2007-03-09
冉翔 写道 先谢谢LZ,可是我的项目最迫切解决的是页面。关于不同的class路径加载,其实都没什么了。可就是本来在不同的目录下的页面合并到一个地方这个搞不定。
就是譬如说我真正的deploy的结构想要这样的: root - user - master root下面有两个目录。user和master,里面存放的都是相关的页面jsp,js之类的文件。 但是在开发环境下。可能user目录是放在/A/root/user,而master是放在/B/root/master A - root - user B - root - master 大约可以说是这样子的情况。 这个我就没办法了。我想你们应该在这样分割项目之前解决好这个问题,不是每种分割方法都方便开发的。 我想,即便是WSAD这类商业IDE也不一定支持这类分割吧。 |
|
返回顶楼 | |
发表时间:2007-03-09
冉翔 写道 先谢谢LZ,可是我的项目最迫切解决的是页面。关于不同的class路径加载,其实都没什么了。可就是本来在不同的目录下的页面合并到一个地方这个搞不定。
就是譬如说我真正的deploy的结构想要这样的: root - user - master root下面有两个目录。user和master,里面存放的都是相关的页面jsp,js之类的文件。 但是在开发环境下。可能user目录是放在/A/root/user,而master是放在/B/root/master A - root - user B - root - master 大约可以说是这样子的情况。 我那法子就是教你干这个的。 |
|
返回顶楼 | |
发表时间:2007-03-09
robbin 写道 我那法子就是教你干这个的。 你的方法是说,两个项目是在两个context里启动,我觉得他的意思是,他的两个project的文件其实是要部署在一个context里的。 那么你的方法就有局限了,如果两个project里的文件互相调用就不好办了。 |
|
返回顶楼 | |
发表时间:2007-03-09
robbin 写道 冉翔 写道 先谢谢LZ,可是我的项目最迫切解决的是页面。关于不同的class路径加载,其实都没什么了。可就是本来在不同的目录下的页面合并到一个地方这个搞不定。
就是譬如说我真正的deploy的结构想要这样的: root - user - master root下面有两个目录。user和master,里面存放的都是相关的页面jsp,js之类的文件。 但是在开发环境下。可能user目录是放在/A/root/user,而master是放在/B/root/master A - root - user B - root - master 大约可以说是这样子的情况。 我那法子就是教你干这个的。 恩,我看了。你说的是不同的apps之间如何办的。我这里是让他们依然是一个app啊。 |
|
返回顶楼 | |