maven指南

  • 疑难部分
    1. mvn clean 只是删除工程目录下的某些所谓的"生成结果"但具体是什么东西,我到现在还没搞清楚,反正他不会去你本地二房库删除jar包就是了,想删除本地二房库里jar包只能通过install覆盖或者手动删除.
  •  
  1. 一定要在.m2仓库下放置setting.xml文件 B2B的setting.xml文件在此http://b2b-doc.alibaba-inc.com/download/attachments/77924054/settings.xml
  2. maven工程的M2_REPO未绑定错误解决
  3. maven

    mvn -Denv=release 这里说明下env是在deploy/pom.xml中的配置项当他不等于release时会执行autoconfig导入antx.property中的变量。而测试用的RPM包是希望可以手动配置antx.property文件的。
    mvn -DuserProp= 这样可以手动指定配置文件
    mvn -pl 可以指定只编译打包某些子工程,例如 -pl web/showwindow,bundle/war (以逗号间隔,止于为什么是/呢,原因是为了找到那个目录下的pom.xml文件,明白吗?不明白就来问我哦~)
    • Project
      任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM,Poject Object Model)。一个工程可以依赖其它的工程;一个工程也可以由多个子工程构成
    • POM:
      POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。
    • GroupId:
      groupId是一个工程的在全局中唯一的标识符,一般地,它就是工程名。groupId有利于使用一个完全的包名,将一个工程从其它有类似名称的工程里区别出来。
    • Artifact:
      artifact是工程将要产生或需要使用的文件,它可以是jar文件,源文件,二进制文件,war文件,甚至是pom文件。每个artifact都由 groupId和artifactId组合的标识符唯一识别。需要被使用(依赖)的artifact都要放在仓库(见Repository)中,否则 Maven无法找到(识别)它们。
    • Dependency:
      为了能够build或运行,一个典型的Java工程会依赖其它的包。在Maven中,这些被依赖的包就被称为dependency。dependency一般是其它工程的artifact。
    • Plug-in:
      Maven提供了强大的插件扩展功能,的每一个功能都是由插件提供的。插件提供goal(类似于Ant中的target),并根据在POM中找到的元数据去完成工作。Maven插件大部分是由Java写成的,但它也支持用Beanshell或Ant脚本写成的插件。
    • Repository
      仓库用于存放artifact,它可以是本地仓库,也可以是远程仓库。
      B2B公共仓库: http://repo.alibaba-inc.com/mvn/
      BU私有仓库
      Maven有一个默认的远程仓库: http://repo1.maven.org/maven2/
      在Windows平台上,本地仓库的默认地址是User_Home\.m2\repository。
    • SNAPSHOT
      工程中可以(也应该)有一个特殊版本,它的版本号包括SNAPSHOT字样。该版本可以告诉Maven,该工程正处于开发阶段,会经常更新(但还未发 布)。当其它工程使用此类型版本的artifact时,Maven会在仓库中寻找该artifact的最新版本,并自动下载、使用该最新版。
    • 内网文档:http://b2b-doc.alibaba-inc.com/display/opentech/Maven
    • Maven官方文档:http://maven.apache.org/users/index.html
    • Maven权威指南 http://www.sonatype.com/books/maven-book/reference_zh/public-book.html
  1. mvnDebug
    方式1:set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
    方式2:mvndebug或mvnDebug,在windows命令行下大小写不敏感
     
    在maven上debug,经常跟jetty或tomcat插件在一起使用。如运行mvnDebug jetty:run命令后再通过eclipse远程连接调试。
    maven的安装目录下存在mvnDebug.bat文件,打开可以看到具体的配置项如下:
    Java代码
    set MAVEN_DEBUG_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
    这里对几个参数进行说明:
    -Xdebug : 启动debug模式
    -Xnoagent: 禁用默认sun.tools.debug调试器
    -Djava.compiler:指定编译器类型,可方便优化 jitc jitc_de等
    -Xrunjdwp:启动调试协议JDWP,全称是Java Debug Wire Protocol,它定义了JPDA front-end和JPDA back-end之间通讯信息的二进制格式。这里的通讯信息主要包括两种:调试器发送给JVM的请求信息和JVM发送给调试器的调试信息。有如下子项:
    -transport:JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。
    -server:y/n 该jvm是被调试者还是调试器
    -suspend:y/n 是否等待外部调试器的连接,如jetty启动时候,是否等待eclipse的远程连接后在进行jetty的初始化工作。在调试web容器的时候用的很多
    -address:监听端口

猜你喜欢

转载自xjdx.iteye.com/blog/1627232