请教一个关于eclipse工程目录的问题

anjy 2009-08-08 01:13:26
我有三个工程,他们共享一个公共common代码,代码如下结构:
project
|
|--common // 公共代码目录,三个工程共享
|--proj1 // 工程1代码目录
|--proj2 // 工程2代码目录
|--proj3 // 工程3代码目录

现在common和proj1,2,3需要同时开发,请问proj1,2,3三个工程的工程文件放在哪个目录里面合适?
如果放在proj1,2,3里面的话,对common的引用势必是绝对路径了,这样团队开发不好管理。
由于刚使用eclipse不久,不是很有经验,请各位给个建议,谢谢!!
...全文
403 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
anjy 2009-08-09
  • 打赏
  • 举报
回复
恩,这也是一种变通的办法了。

[Quote=引用 19 楼 radeonxhl 的回复:]
引用 4 楼 anjy 的回复:
common只是公用代码,并不需要建一个project

引用 2 楼 radeonxhl 的回复:
4个project,其中prj1、prj2、prj3设置为依赖于common就行了,没所谓什么绝对、相对路径的问题


你把common建成一个project不就行了,不同的开发人员都到cvs(或是其它什么东西)把prj1-3和common都check out出来,prj1-3依赖于common项目就行了
[/Quote]
anjy 2009-08-09
  • 打赏
  • 举报
回复
试过,不行!

[Quote=引用 18 楼 eugenedj 的回复:]
cdt是可以使用${workspace}的,工程引用应该能实现你的功能,你试了没有?
[/Quote]
radeonxhl 2009-08-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 anjy 的回复:]
common只是公用代码,并不需要建一个project

引用 2 楼 radeonxhl 的回复:
4个project,其中prj1、prj2、prj3设置为依赖于common就行了,没所谓什么绝对、相对路径的问题

[/Quote]
你把common建成一个project不就行了,不同的开发人员都到cvs(或是其它什么东西)把prj1-3和common都check out出来,prj1-3依赖于common项目就行了
大头贼 2009-08-08
  • 打赏
  • 举报
回复
cdt是可以使用${workspace}的,工程引用应该能实现你的功能,你试了没有?
ganganba 2009-08-08
  • 打赏
  • 举报
回复
一直搞不懂路径的这些目录是怎么回事,这次又学习了,谢谢各位!
anjy 2009-08-08
  • 打赏
  • 举报
回复
现在想到的方法是利用eclipse的定义路径变量的功能,每个开发人员在自己机器上定义一个跟目录的变量(名字相同)。工程中直接该变量来引用common目录,如下:
workspace //各自将各自的workspace所在的目录定义为路径变量:root.
|--common // 公共代码目录,三个工程共享
|--proj1 // 工程1目录
| |--src //工程1的代码
| |--.project //proj1的工程文件放在这里,引用root/common
|--proj2 // 工程2目录
| |--src //工程2的代码
| |--.project //proj2的工程文件放在这里,引用root/common
|--proj3 // 工程3目录
|--src //工程3的代码
|--.project //proj3的工程文件放在这里,引用root/common

ps.不知道能不能直接引用workspace的目录,类似这样:$workspace
anjy 2009-08-08
  • 打赏
  • 举报
回复
o,我这里说的有点问题,不是3个workspace,应该是3个工程目录:
我3个工程要用同一个common目录里的源码,3个工程肯定要建3个工程目录,但一个common无法同时放在3个工程目录里,所以,最少有2个工程要引用工程目录外的目录,如果能用相对目录的方法引用工程目录外的common目录的话,就没有问题了,但是,eclipse好像只能用绝对路径引用工程目录外的目录。这样的话,在别人的机器上,这个绝对目录可能是不同的,所以别人还需要修改工程才能通过编译。
就是这个问题!谢谢!!


[Quote=引用 13 楼 anjy 的回复:]
我的问题可能这样表述更清楚:
我3个工程要用同一个common目录里的源码,3个工程肯定要建3个workspace,但一个common无法同时放在3个workspace里,所以,最少有2个工程要引用workspace外的目录,如果能用相对目录的方法引用workspace外的common目录的话,就没有问题了,但是,eclipse好像只能用绝对路径引用workspace外的目录。这样的话,在别人的机器上,这个绝对目录可能是不同的,所以别人还需要修改工程才能通过编译。
就是这个问题!谢谢!!
[/Quote]
loveazure77 2009-08-08
  • 打赏
  • 举报
回复
帮顶。
anjy 2009-08-08
  • 打赏
  • 举报
回复
我的问题可能这样表述更清楚:
我3个工程要用同一个common目录里的源码,3个工程肯定要建3个workspace,但一个common无法同时放在3个workspace里,所以,最少有2个工程要引用workspace外的目录,如果能用相对目录的方法引用workspace外的common目录的话,就没有问题了,但是,eclipse好像只能用绝对路径引用workspace外的目录。这样的话,在别人的机器上,这个绝对目录可能是不同的,所以别人还需要修改工程才能通过编译。
就是这个问题!谢谢!!
anjy 2009-08-08
  • 打赏
  • 举报
回复
common里的东西需要同步修改,不是固定的库,里面可能会有3个工程公共的头文件等,必须要源码的方式给3个project使用。
很奇怪,eclipse使用不在workspace里的目录为什么不能使用相对路径(如:../),必须是绝对路径。


[Quote=引用 9 楼 eugenedj 的回复:]
c语言更简单,把common里的东西整成一个库不就行了,cdt应该可以建静态库和动态库工程的
另外,右击工程,看属性里,应该有一个工程引用的选项,你可以试试
[/Quote]
anjy 2009-08-08
  • 打赏
  • 举报
回复
从版本控制服务器checkout下来的各自的本地目录会不同的呀,只有相对路径是一样的。如果工程中还有绝对路径的话,每个人编译都要修改工程属性,岂不是很麻烦。

我想达到的效果是,大家从服务器上checkout下来的工程不管他放在d盘还是e盘,都能够不用修改,直接编译。


[Quote=引用 10 楼 believefym 的回复:]
早说了团队开发的话应该有类似cvs这样的版本控制服务器,你在服务器上目录控制好不就行了
checkout下来都是一样的目录结构根本不需要楼主那样的担心

引用 8 楼 anjy 的回复:
当然是可以加source目录的,但是如果common不放在workspace里面,加进去的目录是绝对路径的,这样,在别人的机器上可能就不行了。
主要是这个问题。

引用 7 楼 believefym 的回复:
不太清楚c语言的工程能不能给一个工程增加一个src的目录,这样其实common根本就不需要放到workspace里面去

引用 6 楼 anjy 的回复:
proj1-3是独立的project,只不过共享了common代码。
其实我是用CDT的c语言工程,和java应该类似。
但是common不能建一个工程,是源码方式给proj1,2,3使用的,并不像java编译成.jar,给proj1-3使用。

引用 5 楼 believefym 的回复:

你的proj1-3到底是独立的project还是就类似package性质的而已?

这四个自己管自己有自己的.project,.classpath文件好了,到时候工程属性,build path依赖加一下就好了

也就是放四个project, 然后把common添加到其他三个的build path就好了



[/Quote]
believefym 2009-08-08
  • 打赏
  • 举报
回复
早说了团队开发的话应该有类似cvs这样的版本控制服务器,你在服务器上目录控制好不就行了
checkout下来都是一样的目录结构根本不需要楼主那样的担心

[Quote=引用 8 楼 anjy 的回复:]
当然是可以加source目录的,但是如果common不放在workspace里面,加进去的目录是绝对路径的,这样,在别人的机器上可能就不行了。
主要是这个问题。

引用 7 楼 believefym 的回复:
不太清楚c语言的工程能不能给一个工程增加一个src的目录,这样其实common根本就不需要放到workspace里面去

引用 6 楼 anjy 的回复:
proj1-3是独立的project,只不过共享了common代码。
其实我是用CDT的c语言工程,和java应该类似。
但是common不能建一个工程,是源码方式给proj1,2,3使用的,并不像java编译成.jar,给proj1-3使用。

引用 5 楼 believefym 的回复:

你的proj1-3到底是独立的project还是就类似package性质的而已?

这四个自己管自己有自己的.project,.classpath文件好了,到时候工程属性,build path依赖加一下就好了

也就是放四个project, 然后把common添加到其他三个的build path就好了



[/Quote]
大头贼 2009-08-08
  • 打赏
  • 举报
回复
c语言更简单,把common里的东西整成一个库不就行了,cdt应该可以建静态库和动态库工程的
另外,右击工程,看属性里,应该有一个工程引用的选项,你可以试试
anjy 2009-08-08
  • 打赏
  • 举报
回复
当然是可以加source目录的,但是如果common不放在workspace里面,加进去的目录是绝对路径的,这样,在别人的机器上可能就不行了。
主要是这个问题。

[Quote=引用 7 楼 believefym 的回复:]
不太清楚c语言的工程能不能给一个工程增加一个src的目录,这样其实common根本就不需要放到workspace里面去

引用 6 楼 anjy 的回复:
proj1-3是独立的project,只不过共享了common代码。
其实我是用CDT的c语言工程,和java应该类似。
但是common不能建一个工程,是源码方式给proj1,2,3使用的,并不像java编译成.jar,给proj1-3使用。

引用 5 楼 believefym 的回复:

你的proj1-3到底是独立的project还是就类似package性质的而已?

这四个自己管自己有自己的.project,.classpath文件好了,到时候工程属性,build path依赖加一下就好了

也就是放四个project, 然后把common添加到其他三个的build path就好了


[/Quote]
believefym 2009-08-08
  • 打赏
  • 举报
回复
不太清楚c语言的工程能不能给一个工程增加一个src的目录,这样其实common根本就不需要放到workspace里面去

[Quote=引用 6 楼 anjy 的回复:]
proj1-3是独立的project,只不过共享了common代码。
其实我是用CDT的c语言工程,和java应该类似。
但是common不能建一个工程,是源码方式给proj1,2,3使用的,并不像java编译成.jar,给proj1-3使用。

引用 5 楼 believefym 的回复:

你的proj1-3到底是独立的project还是就类似package性质的而已?

这四个自己管自己有自己的.project,.classpath文件好了,到时候工程属性,build path依赖加一下就好了

也就是放四个project, 然后把common添加到其他三个的build path就好了

[/Quote]
anjy 2009-08-08
  • 打赏
  • 举报
回复
proj1-3是独立的project,只不过共享了common代码。
其实我是用CDT的c语言工程,和java应该类似。
但是common不能建一个工程,是源码方式给proj1,2,3使用的,并不像java编译成.jar,给proj1-3使用。

[Quote=引用 5 楼 believefym 的回复:]

你的proj1-3到底是独立的project还是就类似package性质的而已?

这四个自己管自己有自己的.project,.classpath文件好了,到时候工程属性,build path依赖加一下就好了

也就是放四个project, 然后把common添加到其他三个的build path就好了
[/Quote]
believefym 2009-08-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 radeonxhl 的回复:]
4个project,其中prj1、prj2、prj3设置为依赖于common就行了,没所谓什么绝对、相对路径的问题
[/Quote]

[Quote=引用 3 楼 anjy 的回复:]
您的意思是这样吗:
workspace
|
|--project
| |--common // 公共代码目录,三个工程共享
| |--proj1 // 工程1代码目录
| |--proj2 // 工程2代码目录
| |--proj3 // 工程3代码目录
|--.project //工程文件放在这里??但是这里只能放一个工程,其他工程怎么办?

能否详细点?多谢!


引用 1 楼 believefym 的回复:
谁说这样就要成绝对路径了
你把这四个放在一个目录下不就好了

更何况,团队开发的话,放在版本控制服务器上,你本地又不需要乱放

[/Quote]

你的proj1-3到底是独立的project还是就类似package性质的而已?

这四个自己管自己有自己的.project,.classpath文件好了,到时候工程属性,build path依赖加一下就好了

也就是放四个project, 然后把common添加到其他三个的build path就好了
anjy 2009-08-08
  • 打赏
  • 举报
回复
common只是公用代码,并不需要建一个project

[Quote=引用 2 楼 radeonxhl 的回复:]
4个project,其中prj1、prj2、prj3设置为依赖于common就行了,没所谓什么绝对、相对路径的问题
[/Quote]
anjy 2009-08-08
  • 打赏
  • 举报
回复
您的意思是这样吗:
workspace
|
|--project
| |--common // 公共代码目录,三个工程共享
| |--proj1 // 工程1代码目录
| |--proj2 // 工程2代码目录
| |--proj3 // 工程3代码目录
|--.project //工程文件放在这里??但是这里只能放一个工程,其他工程怎么办?

能否详细点?多谢!


[Quote=引用 1 楼 believefym 的回复:]
谁说这样就要成绝对路径了
你把这四个放在一个目录下不就好了

更何况,团队开发的话,放在版本控制服务器上,你本地又不需要乱放
[/Quote]
radeonxhl 2009-08-08
  • 打赏
  • 举报
回复
4个project,其中prj1、prj2、prj3设置为依赖于common就行了,没所谓什么绝对、相对路径的问题
加载更多回复(1)
logo 设计不会,就这样先凑合了写道 Fuseblog预备开发带在线SHOP功能的个人博客系统.仿照Appfuse 提供一个完全自动化的ant构建脚本.在线SHOP的数据库建模图例已经 在博客中贴出.感兴趣的和我一起搭建,嘻嘻 文档博客地址: http://forum.sinomagazine.com 开发环境: Jcreator-4.5 JDK-1.5 Ant-1.6.1 MYSQL-5 Tomcat-5.5 Spring-2.5.6 Ibatis-2.3.4 问题事项: 1.在windows系统中,命令行中执行ant命令时,当指定的 构建脚本文件中包含中文字符,而构建脚本文件的编码是UTF-8时将会 Invalid byte 1 of 1-byte UTF-8 sequence. 的错误.这个问题尚未 知解决,故先采用GBK的编码. 2.在Jcreator中创建的项目,不支持UTF-8编码,缺省GBK. 以下先列出初步的的ant构建文件的代码: build.xml 一个小时),构建的频率也更高,这样做的目的就是为了快速反馈,使得BUG越早被发现,并能以邮件或者消息(甚至短信)的形式快速反馈给开发人员,从而快速解决问题,并保证构建成功。 二、工具篇: 持续集成 ... by lixw 2008-09-09 回复 (3) 网络相册开发(6)——ant 自动 ... 在工程目录下创建libs/hibernate/ ,放入 hibernate-tools-3.2.0.ga.jar jtidy-4aug2000r7-dev.jar build.properties project.name=sw project.version=1.0 basedir=. build.dir =${basedir}/build web.dir = ${basedir}/WebR ... by vyyv 2009-03-12 回复 (1) ant配置文件实例详解 build.xml 代码 xml version="1.0" encoding="UTF-8"?> 问题。 Antenna介绍 Ant ... by pandonix 2007-08-28 回复 (9) 用Ant 来编译打包您的Anroid应用 ... 通过 activityCreator.py --out myproject your.package.name.ActivityName 命令可以生成一个project ,生成project下面有个bulid.xml 文件,那个东西就可以帮你打包生成了。 来看下ant是怎么做的。 一个来自于埃及的java web ... 怎么又冒出一个web框架? 看看现存的Java web应用程序框架,无一例外的要求花费大量的时间与精力后才可投入生产。对于大多数开发人员来说想要的东西很简单:友好,易于学习并且还具有生产力。因此我们开发了JSPX。 JSPX的主要目标就是打造成为一个“友好的开发者”框架。因为JSPX只基于标准的HTML标签和简单的Java POJO: 1. JSP ... by kyo100900 2009-01-07 回复 (42) NetBeans Struts2 插件更新 NetBeans Struts 2 插件(http://nbstruts2support.dev.java.net)很长时间没有更新了,我对原插件进行了少量修改,并在 NetBeans 6.7 上测试通过,其中修改包括:1.包含了最新的 Struts 2.1.6 库文件。2.更新至最新的 web framework API。3.重新设计了配置面板,支持更加灵活的最初配置。4.少量针对的 ... by gml520 2009-08-27 回复 (4) 新版本的PrettyTools发布,支持 ... PrettyFaces: EL API访问PrettyContext 支持JSF 1.1 增强了错误页面和servlet重定向 PrettyFaces是一个JSF1.2和JSF2.0的扩展,用来创建便于书签收藏、漂亮的网址。 PrettyFaces优雅的解决了这个问题,包括诸如功能:网页装载行动,无缝的跟faces的导航整合,动态视图的ID分配和管理参数分析,无需配置,兼容其他JSF框架。P ... by zly06 2009-09-09 回复 (0) 相关博客 ant模板 < ? xml version = "1.0" ?> < project name= "tax-calculator" default= "package" > < property name= "src.dir" location= "src" / > ... by article2008 2008-07-30 回复 (0) 代码备份build.xml

58,453

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧