Java Hour 40 Maven ( 2 )

有句名言,叫做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!

上一篇:Cassandra 最佳实践系列(1) - CQL QuickStart


下一篇:C# WinForm 异步执行耗时操作并将过程显示在界面中