有句名言,叫做10000小时成为某一个领域的专家。姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧。
Hour 40
Maven 坐标
任何一个包都需要一个全世界唯一的id, Maven 的约定里面,这个唯一的id 就是groupid + artifactId + version + classifier
groupId: 一般代表了项目Id, 不可简单的用公司Id 来表示,因为一个公司的项目太多了。
artifactId: 定义一个Maven 项目(模块)名Id. 建议采用项目名为前缀,eg: foo-core-1.2.jar.
version: 这个以后介绍
Eclipse Debug Maven
这里主要参考这两篇文章:
http://maven.apache.org/surefire/maven-surefire-plugin/examples/debugging.html 这个是讲如何debug test 的。
http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/ 这个是讲java 远程debug 的原理的。
.bat 的一个特殊issue, 我们可以设置maven batch 可暂停。
set MAVEN_BATCH_PAUSE=on F: cd F:\WorkSpace\Weather mvn clean compile
顺便这个文章在具体的使用方面写的也不错。
http://www.cnblogs.com/xiziyin/archive/2009/12/05/1617462.html
顺便补充下批处理的常识:
cd /d %~dp0
表示切换盘符各种手段到当前批处理所在的目录。
cd /d %~dp0 set MAVEN_BATCH_PAUSE=on set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8787,suspend=n,server=y -Xms256m -Xmx512m -XX:MaxPermSize=128m mvn clean package -DdownloadSources=true tomcat:run
至于为什么呢,至于原理可以查看java 远程debug 的原理。
该文章提供了一些列eclipse 调试相关的参考资料,也很有意思,有时间的时候可以阅读。
类似的技术可以远程调试服务器上的War 包之类的。
It’s just what I want!