Maven2学习笔记一

    空虚中.....

    学习Maven2,做个记录。

1.安装

    安装很简单

· http://maven.apache.org/download.html下个新版本的maven。

· 解压到本地disk,配置路径m2_home(解压的maven文件夹路径)、path里添加%m2_home%\bin。

· 打开命令行,输入mvn -v如出现:

  Maven version: 2.0.9
  Java version: 1.6.0_06
  OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"

     表示安装成功。

2.修改配置文件

    配置文件的地址:%m2_home%\conf\settings.xml

· 打开配置文件在<profile></profile>内添加如下内容:

       

<id>myserver</id>

        <repositories>

          <repository>

            <id>central</id>

            <url>http://192.168.16.11:8081/artifactory/repo</url>

          </repository>

          <repository>

            <id>snapshots</id>

            <url>http://192.168.16.11:8081/artifactory/repo</url>

          </repository>

        </repositories>

        <pluginRepositories>

          <pluginRepository>

            <id>central</id>

            <url>http://192.168.16.11:8081/artifactory/repo</url>

          </pluginRepository>

          <pluginRepository>

            <id>snapshots</id>

            <url>http://192.168.16.11:8081/artifactory/repo</url>

          </pluginRepository>

        </pluginRepositories>

</profile>

 

      这里是定义我使用的私服。

      在该文件最后添加

     

<activeProfiles>

      <activeProfile>myserver</activeProfile>

</activeProfiles>

 

      这里是将刚才定义的使用的私服激活。

 3.help插件

help:active-profiles

列出当前构建中活动的Profile(项目的,用户的,全局的)。

help:effective-pom

显示当前构建的实际POM,包含活动的Profile。

help:effective-settings

打印出项目的实际settings, 包括从全局的settings和用户级别settings继承的配置。

help:describe

描述插件的属性。它不需要在项目目录下运行。但是你必须提供你想要描述插件的 groupId 和 artifactId。

 

使用help:describe 目标来获取这些信息。通过 plugin 参数你可以指定你想要研究哪个插件,你可以传入插件的前缀(如 help 插件就是 maven-help-plugin),或者可以是 groupId:artifact[:version] ,这里 version 是可选的

如:mvn help:describe -Dplugin=help

面的命令使用 help 插件的 describe 目标来输出 Maven Help 插件的信息

mvn help:describe -Dplugin=help -Dfull

输出更详细的信息

4.创建项目
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook

· Maven Archtype插件创建了一个与artifactId匹配的目录——simple。这是项目的基础目录。

· 每个项目在文件pom.xml里有它的项目对象模型 (POM)。这个文件描述了这个项目,配置了插件,声明了依赖。

· 我们项目的源码了资源文件被放在了src/main目录下面。在我们简单Java项目这样的情况下,这个目录包含了一下java类和一些配置文件。在其它的项目中,它可能是web应用的文档根目录,或者还放一些应用服务器的配置文件。在一个Java项目中,Java类放在src/main/java下面,而classpath资源文件放在src/main/resources下面。

· 我们项目的测试用例放在src/test下。在这个目录下面,src/test/java存放像使用JUnit或者TestNG这样的Java测试类。目录src/test/resources下存放测试classpath资源文件。

mvn install

将该项目打包安装到服务器上(运行该命令后有maven库里就会添加一个该项目)

5.Maven的生命周期

resources:resources

Resources插件的resources目标绑定到了resources 阶段。这个目标复制src/main/resources下的所有资源和其它任何配置的资源目录,到输出目录。

compiler:compile

Compiler插件的compile目标绑定到了compile 阶段。这个目标编译src/main/java下的所有源代码和其他任何配置的资源目录,到输出目录。

resources:testResources

Resources插件的testResources目标绑定到了test-resources 阶段。这个目标复制src/test/resources下的所有资源和其它任何的配置的测试资源目录,到测试输出目录。

compiler:testCompile

Compiler插件的testCompile目标绑定到了test-compile 阶段。这个目标编译src/test/java下的测试用例和其它任何的配置的测试资源目录,到测试输出目录。

surefire:test

Surefire插件的test目标绑定到了test 阶段。这个目标运行所有的测试并且创建那些捕捉详细测试结果的输出文件。默认情况下,如果有测试失败,这个目标会终止。

jar:jar

Jar插件的jar目标绑定到了package 阶段。这个目标把输出目录打包成JAR文件。

 

1) Maven坐标

Maven通过坐标来精确定位一个项目。Maven坐标通常用冒号来作为分隔符来书写,像这样的格式:groupId:artifactId:packaging:version。

groupId

d 团体,公司,小组,组织,项目,或者其它团体。团体标识的约定是,它以创建这个项目的组织名称的逆向域名(reverse domain name)开头。来自Sonatype的项目有一个以com.sonatype开头的groupId,而Apache Software的项目有以org.apache开头的groupId。

artifactId

在groupId下的表示一个单独项目的唯一标识符。

version

一个项目的特定版本。发布的项目有一个固定的版本标识来指向该项目的某一个特定的版本。而正在开发中的项目可以用一个特殊的标识,这种标识给版本加上一个“SNAPSHOT”的标记。

项目的打包格式也是Maven坐标的重要组成部分,但是它不是项目唯一标识符的一个部分。一个项目的groupId:artifactId:version使之成为一个独一无二的项目;你不能同时有一个拥有同样的groupId, artifactId和version标识的项目。

packaging

项目的类型,默认是jar,描述了项目打包后的输出。类型为jar的项目产生一个JAR文件,类型为war的项目产生一个web应用。

2) Maven依赖

在pom.xml文件里<dependencies></dependencies>之间添加依赖

    <dependency>

      <groupId>log4j</groupId>

      <artifactId>log4j</artifactId>

      <version>1.2.14</version>

    </dependency>

那为这个项目在运行maven的时候会去仓库拉下log4j的包,如果log4j的包又依赖了别的包将会把log4j的依赖包一起拉下来,如此只到所有的依赖都被满足。

3) 浏览你的项目依赖

mvn dependency:resolve

mvn dependency:tree

4) Assembly插件

使用 Maven Exec 插件运行了 Simple Weather 应用程序。虽然 Maven Exec 能运行程序并且产生输出,你不能就把 Maven 当成是你程序运行的容器。 如果你把这个命令行程序分发给其他人,你大概就需要分发一个 JAR 或者一个 ZIP 存档文件或者 TAR 压缩过的 GZIP 文件。下面的小节介绍了使用 Maven Assembly 插件的预定义装配描述符生成一个可分发的 JAR 文件的过程,该文件包含了项目的二进制文件和所有的依赖。

Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件。 你可以使用 Maven Assembly 插件以你希望的任何形式来装配输出,只需定义一个自定义的装配描述符。 后面的章节我们会说明如何创建一个自定义装配描述符,为 Simple Weather 应用程序生成一个更复杂的存档文件。 本章我们将会使用预定义的 jar-with-dependencies 格式。 要配置 Maven Assembly 插件, 我们需要在 pom.xml 中的 build 配置中添加如下的 plugin 配置。

Pom.xml配置如下:

<build>

    <plugins>

      <plugin>

        <artifactId>maven-assembly-plugin</artifactId>

        <configuration>

          <descriptorRefs>

            <descriptorRef>jar-with-dependencies</descriptorRef>

          </descriptorRefs>

        </configuration>

      </plugin>

    </plugins>

  </build>

mvn assembly:assembly 

在 target/simple-weather-1.0-jar-with-dependencies.jar 装配好之后, 我们可以在命令行重新运行 Main 类。在你项目的基础目录下运行以下命令:

java -cp simple-weather-1.0-jar-with-dependencies.jar org.sonatype.mavenbook.weather.Main 10002

这样我的依赖包里的class文件也一起打进了这个包里了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值