MAVEN2实战

 一、获取manven2

http://maven.apache.org/download.html

二、学习资源:

http://www.sonatype.com/books/maven-book/reference_zh/public-book.html

三、获取依赖jar包的maven坐标的途径:

http://www.mvnrepository.com

载入 http://www.mvnrepository.com 然后搜索一些常用的类库,如 Hibernate 或者 Spring Framework 。当你在这上面搜索构件时,它会显示一个 artifactId 和所有 Maven 中央仓库所知道的版本。 点击某个特定的版本后,它会载入一个页面,这个页面就包括了你需要复制到你自己项目 pom.xml 中的依赖元素。 你经常会发现某个特定的类库拥有多于一个的 groupId,这个时候你需要通过 mvnrepository.com 来帮助确定你到底需要怎样配置你的依赖

四、从定义开始:

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后 Maven 可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

五、如何开始使用maven2:

环境变量配置:

M2_HOME=安装maven2所在的位置;【配置JAVA_HOME

path这个环境变量的末尾加上;%M2_HOME%/bin;

进入windowscmd窗口键入mvn命令此时maven2便会在你的系统中创    建自己的存储仓库:默认位置为:C:/Documents and Settings/username[此处为当前系统用户名]/.m2

注意:如果你在以上目录中没有发现.m2这个目录,此时可以检查你设置的M2_HOME这个环境变量应该是设成了系统环境变量,将其 改成用户环境变量,再进行以上操作便会发现maven2帮你生成的.m2这个目录。

六、创建一个简单的java项目:

在命令行使用Maven Archetype插件,命令如下:

F:/mvnstudy>mvn archetype:create -DgroupId=com.nhu.mvntest -DartifactId=simple 【即项目名】-DpackageName=com.nhu.mavenbook[即包名] –Dversion=1.0.

执行这条命令之后,maven2会帮我们在F:/mvnstudy目录下建立一个名叫simple的普通java项目,并且个项目在打包时会被打包成jar.

打包应用:可以通过mvn installmvn package这条命令打包该应用.

生成站点:mvn site

浏览你的项目依赖:mvn dependency:resolve

七、创建一个标准的web项目:

F:/mvnstudy>mvn archetype:create -DgroupId=com.nhu.mvntest -DartifactId=simple-webapp [项目名称] -DpackageName=com.nhu.mavenbook [包名]  -DarchetypeArtifactId=maven-archetype-webapp[应用程序类型,此时代表为web项目,将打成war].

配置jetty插件:

<project>

  [...]

  <build>

    <finalName>simple-webapp</finalName>

    <plugins>

      <plugin>

        <groupId>org.mortbay.jetty</groupId>

        <artifactId>maven-jetty-plugin</artifactId>

      </plugin>

    </plugins>

  </build>

  [...]

</project>

在项目的 pom.xml中 配置好 Maven Jetty 插件之后,你就可以调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动你的 web 应用。如下运行 mvn jetty:run.

八、创建多模块程序:

一个典型的多模块工程的父工程的pom.xml如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

                      http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

 

  <groupId>org.sonatype.mavenbook.ch06</groupId>

  <artifactId>simple-parent</artifactId>

  <packaging>pom</packaging>

  <version>1.0</version>

  <name>Chapter 6 Simple Parent Project</name>

 

  <modules>

    <module>simple-weather</module>

    <module>simple-webapp</module>

  </modules>

 

  <build>

    <pluginManagement>

      <plugins>

        <plugin>

          <groupId>org.apache.maven.plugins</groupId>

          <artifactId>maven-compiler-plugin</artifactId>

          <configuration>

            <source>1.5</source>

            <target>1.5</target>

          </configuration>

        </plugin>

      </plugins>

   </pluginManagement>

  </build>

 

  <dependencies>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>3.8.1</version>

      <scope>test</scope>

    </dependency>

  </dependencies>

</project>

注意其packaging的值:<packaging>pom</packaging>pom而不是前面我们所见到的jar或者是war这意味着这个父项目不会被打包成一个jar包,或者是war包,当我们把任意一个普通的maven2项目的pom.xml中的packaging属性的值设置为pom,该普通的maven2项目便会自动的变为一个可以包含多个子模块的父项目,当你在该父模块中创建其他maven2工程时,maven2便会自动的在该父模块中添加进你刚刚建立的子模块的引用,同时也会在该子模块中自动的加入对父模块的引用。

多模块工程的各个子模块之间可以相互依赖,当我们编译整个工程或只是单独的编译某个子模块时,系统会自动的去先编译相应的被依赖的子模块,然后将生成的jar包自动的加入到依赖该jar包的子模块中去,再编译该子模块

九、如何将一个标准的maven2工程导入到eclipse:

进入到当前工程的根目录,

执行mvn eclipse:eclipse命令便可以生成eclipse.project文件,此时我们便可以将该工程importeclipse了,并且在执行此命令的同时,maven2会帮我们将在pom.xml文件中配置的依赖jar包写入到刚刚生成的.classpath文件中,也就是说只要我们此时刷新工程eclipse能够根据该.classpath文件找到相应的jar包,不需要像以前那样自己去手动的将程序所依赖的jar包拷贝到classpath路径下面。

十、使用maven2来对我们的程序进行测试:

Maven2会自动的读取src/test/java目录下的junit单元测试类。当然我们也可以跳过单元测试执行maven2的其他生命周期的操作,其命令类似下面所示:

mvn package[此处为maven2的其他生命周期] –Dmaven.test.skip=true

十一、 注意:使用maven2来帮助我们管理我们的jar包时可能出现以下debug:你明明在classpath下看到了你需要的jar包,但是运行或编译工程时系统却说找不到相关的类,此时你可以检查该classpath中对应路径下的相关jar包的大小,如果小得异常(有的可能就只有1kb2kb等),这时你不妨用相关的工具打开该jar包,里面很可能就是空的,这可能是因为某些原因导致maven2根据我们在pom.xml中的配置去远程仓库下载相应jar包时出现了问题,虽然你可以在本地仓库中发现该jar包,但其却是假的,此时你可以自己去手动下一个相应版本的jar包然后覆盖掉原本有问题的就OK了。

手工添加jar包到本地仓库:

1.         首先在要加到本地仓库的jar包所在文件夹建立一个pom.xml文件内容如下:

    <?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

 

    <modelVersion>4.0.0</modelVersion>

<groupId>placeholder</groupId>

<artifactId>pltform-config</artifactId>

<version>1.0</version>

  </project>

 

   Then, install it using the command:

      mvn install:install-file -DgroupId= placeholder -DartifactId= pltform-config -Dversion=10-Dpackaging=jar -Dfile= pltform-config.jar

  Alternatively, if you host your own repository you can deploy the file there:

      mvn deploy:deploy-file -DgroupId= placeholder -DartifactId= pltform-config -Dversion=1.0-Dpackaging=jar -Dfile= pltform-config .jar-Durl= file:///F:/ppfuseRepository/repository

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值