Maven入门01——手动编写最简单的javaMaven项目

1、编写POM.XML

首先在 D盘根目录创建文件夹:maven-test, 在此文件夹中新建一个名为pom.xml的文件代码清单如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>

    <groupId>com.xyd</groupId>
    <artifactId>MavenTest</artifactId>
    <version>1.0</version>
  <packaging>jar</packaging> <name>MavenTest</name> </project>

  POM.XML代码说明

子元素<modelVersion>指定了当前POM模型的版本,对于Maven2和Maven3来说,它只能是4.0

<groupId>一般定义了项目属于哪个组,这个组名往往和项目所在的组织名称关联,如果在xyd公司建立的项目,就可以写成: <groupId>com.xyd</groupId>
<artifactId>定义了当前Maven项目在组中唯一的ID,在此为项目定义artifactId为MavenTest,写成 <artifactId>MavenTest</artifactId>
<version>定义了当前项目的版本,<version>1.1</version>意思是当前版本为1.0,后续可以升级新版本
<packaging>元素在此示例中可以省略。
<name>元素定义一个友好的项目名称,不是必须的,可以省略,<name>MavenTest</name>

2、编写主代码
项目主代码会被最终打包到构件中(如class文件),test测试代码只在运行测试时用到,不会被打包。

认情况下,Maven项目主代码位于 src/main/java目录下,遵守Maven约定,在该目录下创建文件com\xyd\MavenTest\MavenTest.java

MavenTest.java代码清单如下:
package com.xyd.MavenTest;

public class MavenTest{
    public static void main(String[] args){
        System.out.print("MavenTest!");
    }
}//end class

 

因为package包名为com.xyd.MavenTest,所以MavenTest.java文件要在src/main/java路径目录下的子目录路径com\xyd\MavenTest\中,MavenTest.java文件绝对路径为:D:\maven-test\src\main\java\com\xyd\MavenTest\MavenTest.java

代码编写完成后,使用Maven clean compile 命令进行编译

 

首先在cmd窗口中使用dos命令进入到D:\maven-test\src\main\java目录下

 

 

执行命令:mvn clean compile

提示BUILD FAILURE (构建失败),进入的路径失败

 

 

其实Maven会自动搜索src\main\java目录下的主代码,package名和子目录嵌套路径一定要一致。

我们在cmd窗口中,重新回到pom.xml文件所在的项目根目录D:\maven-test\,再执行命令:mvn clean compile

命令行提示构建成功。

 

 

mvn clean compile 命令的意思是先删除(clean 掉target目录及其中的构建输出内容),再重新生成target目录和构建的文件(class文件或者jar包,或者war包等)

 

查看D:\maven-test目录下,生成了target目录,其中有构建输出class文件

 

 

 

 

 

 

 

 

 

 






 

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...