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加载项 ...
随机推荐
- Vitamio介绍及使用
一.Vitamio介绍 1.1 Vitamio是什么? Vitamio是Android平台视音频播放组件,支持播放几乎格式的视频以及主流网络视频流(http/rtsp/mms等),详细的中文介绍: 这 ...
- 【Apache Nutch系列】Nutch2.0配置安装异常集锦
1.java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration Exception in thread &qu ...
- openstack内外网ip实现
类似于阿里云ECS主机的内外网(双网卡不通网段)的结构,最终实现内外网区分隔离. https://www.aliyun.com/product/ecs/?utm_medium=text&utm ...
- Application binary interface and method of interfacing binary application program to digital computer
An application binary interface includes linkage structures for interfacing a binary application pro ...
- UVA 763 Fibinary Numbers
题意讲某个二进制按照规则每一位对应斐波那契数生成新的数字,然后2个数字求和.再求由该规则生成的二进制串.并且要求尽量用更大项的fib数(题目提示不能由连续的1就是2个连续的1(11)不如100更优) ...
- python实现websocket
# websocket实现原理 ''' 1.服务端开启socket,监听ip和端口 2.客户端发送连接请求(带上ip和端口) 3.服务端允许连接 4.客户端生成一个随机字符串,和magic strin ...
- Servlet 2.4 规范之第七篇:过滤器
过滤器是一套java组件,用于在请求—>资源—>应答的这一过程中即时转换处理负载和头信息. 本章讲述了Servlet 2.4 API中一些类和方法,这些类和方法提供了一套轻量级框架用于过滤 ...
- J.U.C并发框架源码阅读(三)ReentrantLock
基于版本jdk1.7.0_80 java.util.concurrent.locks.ReentrantLock 代码如下 /* * ORACLE PROPRIETARY/CONFIDENTIAL. ...
- Linux Shell 参数传递多种方式
背景 最近编写ansible脚本,需要自动调用之前写好的shell脚本,由于shell脚本中包含了read命令接收用户的手动输入,为了实现ansible脚本的自动运行,不得不将手动输入转换为自动输入. ...
- spoj - Distinct Substrings(后缀数组)
Distinct Substrings 题意 求一个字符串有多少个不同的子串. 分析 又一次体现了后缀数组的强大. 因为对于任意子串,一定是这个字符串的某个后缀的前缀. 我们直接去遍历排好序后的后缀字 ...