MAVEN2实战

来源:互联网 发布:做淘宝兼职 编辑:程序博客网 时间:2024/06/17 05:03

 一、获取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项目:

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

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

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

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

生成站点:mvn site

浏览你的项目依赖:mvndependency: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 SimpleParent 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:

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

执行mvneclipse: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.0http://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 thecommand:

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

  Alternatively, if you hostyour 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

原创粉丝点击