Maven-HelloWorld简单入门

Maven-HelloWorld简单入门
毛大黑

2018.02.01 阅读 260 评论 0 喜欢 0

编写POM(Project Object Model)

Maven项目的核心是pom.xml,它定义了项目的基本信息,用于描述项目如何构建,声明项目依赖

  1. 创建文件夹,名称为hello-world
  2. 创建pom.xml文件,位于根目录下
  3. 编辑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>com.xikunqu.firstmvn</groupId>
    <artifactId>helloworld</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>Maven Hello World Project</name>
</project>

解析:

  • <??>中制定了xml文档的版本和编码方式
  • <project>是文档的根元素,还声明了一些POM相关的命名空间以及xsd元素,使用这些属性可以让第三方工具帮助我们快速编辑POM
  • groupId,artifactId和version定义了一个项目的基本坐标,在Maven中,任何jar,pom,war都是局域这些基本 坐标进行区分的
  • grouId定义了项目属于哪个组,若googlecode上建立了一个myapp项目,groupld就应该是com.googlecode.myapp
  • artifactId定义了当前Maven项目在组中唯一的ID
  • version 制定了hello-world项目当前的版本
  • name生命了一个对于用户更为友好的名称,不是必须的

编写主代码

项目主代码会被导播到最终的构建中,默认情况下,Maven假设项目主代码位于src/main/java目录下

  1. 创建src/main/java目录
  2. 在建好的目录下创建文件com/xikunqu/firstmvn/helloworld/HelloWorld.java
package.com.xikunqu.firstmvn.helloworld;
public class HelloWorld
{
    public String sayHello(){
        return "Hello World";
    }
    public stacic void main(String[] args){
        System.out.print( new HelloWorld().sayHello());
    }
}
  1. 执行编译:mvn clean compile
    运行结果如下:
    运行结果

编写测试代码

  1. 建立目录,src/test/java
  2. 由于要使用JUnit,所以先为项目添加一个JUnit依赖,修改pom.xml,添加如下代码
<dependencies>
     <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.7</version>
         <scope>test</scope>
     </dependency>
</dependencies>

解析:

  • dependencies元素下可以包含多个dependency元素以声明项目的依赖
  • 这段声明可以使Maven 自动下载junit-4.7.jar
  • scope为依赖范围,表明该依赖值对测试有效
  1. 编写测试类,测试sayHello()方法,检查其返回值,在src/test/java下创建文件HelloWorldTest.java
package com.xikunqu.firstmvn.helloworld;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class HelloWorldTest
{
    @Test
    public void testSayHello(){
        HelloWorld helloworld=new HelloWorld();
        String result=helloworld.sayHello();
        assertEquals("Hello World",result);
    }
}
  1. 执行编译:mvn clean test
    运行结果部分截图如下:
    运行结果

打包和运行

在项目进行编译,测试之后,下一重要步骤就是打包

  1. 执行命令:mvn clean package
    运行结果部分截图如下:
    运行结果

    可以看到项目主代码被打包为一个名为helloworld-1.0-SNAPSHOT.jar的文件,位于target目录下。
  2. 目前为止,我们都没有运行HelloWorld项目,默认打包生成的jar是不能后直接运行的,因为带有main方法的类不会被添加到manifest中,为了生成可执行的jar文件,需要借助maven-shade-plugin,在pom.xml添加如下代码:
<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>1.2.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.
                                     ManifestResourceTransformer">
                                    <mainClass>com.xikunqu.firstmvn.helloworld.HelloWorld</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
  1. 再次执行mvn clean package,构建成功后,可以看见target目录下存在两个jar包,如下图所示:
    jar包
  2. 执行jar文件,如下图所示:


    运行结果
生活 转载请联系作者,并注明出处。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

春光支付宝

支付宝

春光微信

微信


喜欢  |  0

0条评论