02-maven-构建过程和项目构建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linzhaoliangyan/article/details/88621792

* maven构建过程

    * 建立maven2项目,同时建立Maven约定的目录结构和pom.xml文件

    maven2
      | --src
      | -----main
      | ----------java
      | ----------resources
      | -----test
      | ---------java
      | ---------resources
      | --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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.hx.maven.hello</groupId>
  <artifactId>maven2</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>hellomaven</name>
  
    <!--添加依赖的jar包-->
    <dependencies>
        <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>        
        
    </dependencies>
</project>

public class Person {
    
    public String sayHello(String name){
        return "Hello "+name+"!";
    }
}

public class PersonTest {

    @Test
    public void testHello(){
        Person person = new Person();
        String results = person.sayHello("xiaohei");
        System.out.println(results);
    }
}

    

* 命令组合使用

mvn clean compile
mvn clean test
mvn clean package
mvn clean install    

* 使用自己在maven生成的jar

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.hx.maven.hello3</groupId>
  <artifactId>maven3</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>maven3</name>
  
    <!--添加依赖的jar包-->
    <dependencies>
        <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>test</scope>
        </dependency>        
        
         <dependency>
            <groupId>com.hx.maven.hello</groupId>
            <artifactId>maven2</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>  
    </dependencies>
</project>

public class HelloPerson {

    public String sayHelloToPerson(String name){
        
        Person person = new Person();
        String str = person.sayHello(name)+" I am "+this.getMyName();
        System.out.println(str);
        return str;
    }
    
    public String getMyName(){
        return "John";
    }
}

public class HelloPersonTest {

    @Test
    public void testHelloPerson(){
        HelloPerson helloPerson = new HelloPerson();
        String results = helloPerson.sayHelloToPerson("xiaohei");
        System.out.println(results);
    }
}

* 构建项目

       * java 的项目

mvn archetype:generate -DgroupId=com.hx.maven.shopping -DartifactId=shopping -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    
mvn archetype:generate -DgroupId=com.hx.maven.tourise -DartifactId=tourise -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

mvn archetype:create 这个命令在maven 3.02以上的版本已经不用了, 用generate 命令代替

 

1、pom意思就是project object model。
2、pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。
3、pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的pom.xml
    * 公共东西--commonmodule
         * pom.xml
    * loginmodule
    * registermodule
    * ...

<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>com.hx.maven.shopping</groupId>
  <artifactId>shopping</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>shopping</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
 

 pom.xml文件的节点元素说明:

    <project>       pom文件的顶级节点
    <modelVersion>     object model版本,对Maven2和Maven3来说,只能是4.0.0 
    <groupId>       项目创建组织的标识符,一般是域名的倒写
    <artifactId>      定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
    <version>        当前项目的版本,SNAPSHOT,表示是快照版本,在开发中

    <packaging>      打包的方式,有jar、war、ear,pom等
    <name>        项目的名称
    <url>          项目的地址

    <properties>    属性配置,比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <dependencies>     构建项目依赖的jar

  其中由groupId、artifactId和version唯一的确定了一个项目坐标

 

 

* 使用Maven构建JavaWeb项目

mvn archetype:generate -DgroupId=com.hx.web -DartifactId=hellweb -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

* Maven创建项目的命令说明

   mvn archetype:create或者mvn archetype:generate  固定写法

  -DgroupId                       组织标识(包名)

  -DartifactId                      项目名称

  -DarchetypeArtifactId                  指定ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project

  -DinteractiveMode                    是否使用交互模式

  archetype是mvn内置的一个插件,create任务可以创建一个java项目骨架,DgroupId是软件包的名称,DartifactId是项目名,DarchetypeArtifactId是可用的mvn项目骨架,目前可以使用的骨架有:

maven-archetype-archetype
maven-archetype-j2ee-simple
maven-archetype-mojo
maven-archetype-portlet
maven-archetype-profiles (currently under development)
maven-archetype-quickstart
maven-archetype-simple (currently under development)
maven-archetype-site
maven-archetype-site-simple
maven-archetype-webapp
  每一个骨架都会建相应的目录结构和一些通用文件,最常用的是maven-archetype-quickstart和maven-archetype-webapp骨架。maven-archetype-quickstart骨架是用来创建一个Java Project,而maven-archetype-webapp骨架则是用来创建一个JavaWeb Project。

猜你喜欢

转载自blog.csdn.net/linzhaoliangyan/article/details/88621792
今日推荐