Maven学习(二)

Maven配置文件相关配置

Maven笔记

在main和test目录中分别添加下面两段Java代码

1
2
3
4
5
6
package com.xiaoguan.maven;
public class Calculator{
public int sum(int i,int j){
return i+j;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.xiaoguan.maven;
import org.junit.Test;
import com.xiaoguan.maven.Calculator;
import static org.junit.Assert.*;
public class CalculatorTest{
@Test
public void testSum(){
Calculator calculator= new Calculator();
int actualResult=calculator.sum(5,3);
int expectedResult=8;
assertEquals(expectedResult,actualResult);
System.out.print("小关");
}
}

和maven构建相关的命令要在pom.xml目录下执行。

  1. mvn clean删除target目录
  2. mvn compile主程序编译目录
  3. mvn test-compile测试程序编译目录
  4. mvn test测试程序(重新自动编译)
  5. mvn package打成包放target目录(只有主体程序打包没有测试程序)
  6. mvn install将打好的包存入本地仓库中
  7. mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4生成web工程。servlet测试代码为
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.xiaoguan.maven;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;

public class HelloServlet extends HttpServlet{

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.getWriter().write("hello maven web");

}

}

注册文件

1
2
3
4
5
6
7
8
 <servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.atguigu.maven.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/helloServlet</url-pattern>
</servlet-mapping>

jsp测试代码为

1
2
3
4
5
6
<html>
<body>
<h2>Hello World!</h2>
<a href="helloServlet">Access Servlet</a>
</body>
</html>
  1. mvn dependency:list依赖列表

  2. 配置依赖排除

    1
    2
    3
    4
    5
    6
    7
    <exclusions>
    <exclusion>
    <!--指定坐标时不需要指定version,写在dependency中-->
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    </exclusion>
    </exclusions>
  3. <packaging>pom</packaging>只有打包方式为pom的工程才能为父工程

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <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.xiaoguan.maven</groupId>



    <artifactId>pro03-maven-parent</artifactId>



    <version>1.0-SNAPSHOT</version>



    <packaging>pom</packaging>



    <name>pro03-maven-parent</name>



    <url>http://maven.apache.org</url>



    <properties>



    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <a>4.0.0</a>



    </properties>



    <dependencies>

    </dependencies>



    <modules>



    <module>pro04-maven-moudle</module>



    <module>pro05-maven-moudle</module>


    <module>pro06-maven-moudle</module>

    </modules>
    <dependencyManagement>
    <dependencies>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>4.0.0.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>4.0.0.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.0.0.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
    <version>4.0.0.RELEASE</version>
    </dependency>
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>4.0.0.RELEASE</version>
    </dependency>
    </dependencies>
    </dependencyManagement>


    </project>

    父工程有的可以不写依赖版本但其他还是要写,写版本号以子工程中为准。${a}可以放在version里做到一处修改处处修改,前提要在<properties>中声明

    1. mvn clean install -Dmaven.test.skip=true-D表示要附加命令的参数,此例子表示执行参数过程中跳过测试。