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项目的支持并不友好!的更多相关文章
- 在命令行中运行eclipse中创建的java项目
在命令行中运行eclipse中创建的java项目 博客分类: java相关 javaeclipse命令行 由于项目要求,需要对eclipse中的项目进行打包,似的可以在客户机上不装eclipse的情 ...
- eclipse中如何将java项目转为java Web项目
有时候我们在eclipse中导入web项目时,系统当做一个java项目导入进来了.这时候在启动tomcat的服务器时无法找到该项目. 那么可以通过如下操作来将java项目转换为web项目. 1. 选择 ...
- Eclipse安装配置以及java项目和类的创建
1.Eclipse的安装: 双击此应用程序 进入安装界面 选择下一步 更改路径将此默认路径改为 确定之后下一步更改jre的安装路径 在之前安装的java文件夹下新建一个jre文件夹 将jre安装在里边 ...
- Android 如何在Eclipse 引入外部纯Java项目(不是打成Jar使用)
应用情景--如标题: 在Eclipse的 “Android启动项目”中引入“外部的纯Java项目”,能运行的只有是基于Android的测试代码才可以. 一直很纳闷,如果外部写好一个Java插件(例如服 ...
- java web项目导入到eclipse中变成了java项目的一种情况的解决办法
前提,我把代码上传到github上之后,在另外一台电脑上拉下之后,先报出现的是jre不对,然后换成了当前的jre,然后红色的感叹号消失了但是之前项目上那个小地球不见了,也就是说变成了java项目. - ...
- Eclipse 运行导入的 Java 项目时,Error:A JNI error has occurred
出现场景 导入 Java 项目,运行时,出现:Error:A JNI error has occurred.... 解决方式 该项目的 Build Path , 在Libraries 中删除后重新添加 ...
- Eclipse+Maven整合开发Java项目(二)➣webapp3.0以上的Maven项目
概述 Eclipse集成Maven插件,新建maven-archetype-webapp项目的时候,采用的webapp的版本较低,默认是2.3,有些时候,我们希望升级Webapp的版本到3.0(Tom ...
- Eclipse+Maven整合开发Java项目(一)➣Maven基础环境配置
概述 Maven是一个Java语言编写的开源项目管理工具,是Apache软件基金会的顶级项目.主要用于项目构建,依赖管理,项目信息管理.有些项目需要添加响应的依赖包,Maven就是公用包集合.存在远程 ...
- Eclipse中的普通Java项目如何部署到Tomcat中
我现在的做法: 1.在Eclipse中配置Tomcat时,选择创建Context文件,而不是server.xml,好处是文件可以随便命名,与虚拟目录一致(即xml中的属性path).Tomcat加载项 ...
随机推荐
- BAT脚本编写教程入门提高篇
BAT脚本编写教程入门提高篇 批处理文件的参数 批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符“%”. %[1-9]表示参数,参数是指在运行批处理 ...
- hadoop使用supervisord
#安装 wget https://pypi.python.org/packages/80/37/964c0d53cbd328796b1aeb7abea4c0f7b0e8c7197ea9b0b9967b ...
- Windows环境Vim编辑器如何执行Ruby代码
1.下载 Ruby 1.8.5(2006-8-25) for Windows: 在网页http://www.rubychina.net/downloads/ 上找到 --〉Ruby on Windo ...
- Selenium2+python自动化16-alert\confirm\prompt【转载】
前言 不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决. alert\confirm\prompt ...
- hdu 5086(递推)
Revenge of Segment Tree Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ...
- MSSQL删除重复记录
SQL(根据自己需要改列名.表名): delete from tableA where id not in (select min(id) from tableA group by name,age)
- js-监听页面滚动
两种监听页面滚动的方法 一.原生js通过window.onscroll监听 window.onscroll = function() { //为了保证兼容性,这里取两个值,哪个有值取哪一个 //scr ...
- Codeforces Round #447 (Div. 2) C. Marco and GCD Sequence【构造/GCD】
C. Marco and GCD Sequence time limit per test 1 second memory limit per test 256 megabytes input sta ...
- ZOJ 3937 More Health Points (2016 浙江省赛 B题,可持久维护凸壳)
题目链接 2016 ZJCPC Problem B 题意 CF 660F的树上版本. 其他做的方法都差不多,关键是把凸壳放到树上. 每次确定扔掉几个元素的时候直接$O(1)$修改(先不清楚这个位置 ...
- Python的Web编程[1] -> Web服务器[0] -> Web 服务器与 CGI / WSGI
Web服务器 / Web Server 对于Web来说,需要建立一个Web服务器,必须建立一个基本的服务器和一个处理程序, 基本服务器的主要作用是,在客户端和服务器端完成必要的HTTP交互, 处理程序 ...