首页 > 代码库 > Eclipse对于多个Java项目的支持并不友好!

Eclipse对于多个Java项目的支持并不友好!

本文吐槽!

如果我们创建两个Java项目。一个叫StatsReader。把数据从网上下载到本地数据库里。一个叫StatsViewer。把数据从数据库里拿出来呈现给用户。这两个项目都要用同一个外部类库mysql-connector-java-5.0.8-bin.jar。

Eclipse能够创建一个工作集。内含多个Java项目,但工作集仅仅是一个概念,与项目的实际存储位置无关。

可是我们能够把两个项目放在同一个文件夹里,比方D:\Source Code\NBA\StatsReader和D:\Source Code\NBA\StatsViewer。

如果有个需求,要求reader读完数据后自己主动打开viewer。我们能够用改动.project文件添加链接目录的方式把StatsReader的编译位置从D:\Source Code\NBA\StatsReade\bin转移到D:\Source Code\NBA\bin,即..\bin。相同StatsViewer也这样转移。

Java编译烂就烂在在文件级别上源码与二进制一一相应,我有a.java。它就编出a.class。所以,万一StatsReader和StatsReader有某个文件重名就会出错。

我从C#出身的,在Java里我习惯把包括main函数的文件起名为Program.java,所以有StatsReader/Program.java和StatsViewer/Program.java。编译后bin里仅仅会有一个Program.class,我也不知道是reader的还是viewer的!

那行吧。幸亏我还能把java程序打包成jar。

比方我reader先调试好了,打包成StatsReader.jar,放到bin里。然后開始调试viewer。

由于reader的program.class在bin里面,我在eclipse的viewer项目里点击执行。实际上执行的还是reader!

我要又一次编译reader,不行的!

说要清理项目状态然后编译。清理项目状态事实上就把bin里的全部文件都清除了,我刚打包好的StatsReader.jar没了!

Visual Studio支持就好多了!VS创建一个项目,这个项目就自己主动处在一个解决方式里,从一開始就告诉你一个解决方式能够包括多个项目。而不特别去查的话不会知道Eclipse有工作集这个玩意儿。

VS能够强制又一次编译项目。无论代码文件有没有改过,它都给你编译一遍。VS也能够清理解决方式,就跟Eclipse清理项目状态差点儿相同。但VS它不是一股脑地整个删除bin目录里的文件,它仅仅会删除它生成的文件。

像我刚才描写叙述的两个项目,在VS里面我想就非常好做。结构清晰。管理简单。

有人不服气了,说Eclipse有Ant自己主动构建大神,还有maven大神、Gradle大神,但我这仅仅是简单的需求就要动用到还有一项专门技术?Eclipse里菜单是有“Ant自己主动构建”之类的选项,但我怎么知道这是什么意思?

我也不知道Eclipse能不能执行“编译前动作”“编译后动作”,这似乎是ant负责的事。能不能编译到D:\Source Code\NBA\StatsReade\bin。打包成jar放到D:\Source Code\NBA\bin,执行D:\Source Code\NBA\bin的jar?看起来非得搞懂自己主动构建才行!

VS编译前编译后动作就非常明显,在项目属性窗体里,点几下就能看到。虽然编译前编译后动作属于自己主动构建领域,但VS不引进这个概念,我直接看到我想要的就用了。不知不觉。“原来这就是自己主动构建呀。”VS也支持编译后把非代码文件拷贝到编译文件夹。

在我的样例里,reader和viewer都要连接数据库,我想把连接字符串存在一个文件中,比方connection.txt,与两个程序放在同级文件夹。

因为上面清理项目状态的问题。这个txt常常被删掉。在VS里就方便了,txt与代码放一起,但设置编译后拷贝到编译文件夹。这样即可了。

要说VS有没有类似ant大神的自己主动构建工具,我不知道,但其csproj文件就具有一定的编程能力。

结论就是。Visual Studio比Eclipse好用!

欢迎拍砖。

Eclipse对于多个Java项目的支持并不友好!