`

Maven笔记(2)-- 构建Java Project 及 Maven命令使用

 
阅读更多

 

1. 创建一个Java Project

1.1)File--->New--->Other--->Maven--->Maven Projet

1.2)选择maven-archetype-quickstart

 

1.3)输入项目的数据

 

 1.4)生成的项目目录结构如下:

 

 

其中src/main/java 放项目的代码文件、src/test/java 放项目的测试文件。

另外一般项目都有另外两个source folder,src/test/resource 和src/main/resource,用于放配置文件。没有可手工添加上。

src/main/java和src/main/resource指定target/calsses

src/test/java和src/test/resource指定target/test-classes

 

1.5) 在根目录下,可以看到一个pom.xml文件,这个文件是Maven的核心

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.esom.tech</groupId>
  <artifactId>helloworld</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

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

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.7</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

 

a)pom意思就是project object model。

b)pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。

c)pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的pom.xml

 

d)Maven项目中,通常由groupId、artifactld、version、packaging来定位一个项目的坐标。坐标也是构件、插件的唯一标识符。格式为groupId:artifactld:packaging:version。这里项目的坐标为com.esom.tech:helloworld:jar:0.0.1-SNAPSHOT

 

b) 通过上面项目目录结构可以看到,Maven自动下载了junit-4.7.jar。这也是通过pom.xml声明了对junit的依赖。Maven会自动从中央仓库(sonatype公司维护)下载依赖的构件到本地仓库。每个本地项目再从本地公用构件里面根据依赖获取自己需要的构件。

中央仓库:http://repo1.maven.org/maven2/

本地仓库:~\.m2\repository (对应目录:C:\Documents and Settings\yongsong_lin\.m2\repository)

私有仓库:类似中央仓库,但只能公司内部(有权限的人)使用,并可以代理中央仓库的jar包和其他地址仓库的包,起到中介作用。Maven笔记(3)会介绍到 使用Nexus构建Maven私有仓库。

本机仓库默认在C盘,随着构件的增多,占用空间会越来越大,可以通过修改D:\apache-maven-3.0.4\conf\settings.xml 来改变仓库的目录

  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ~/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->

 

e) Maven的依赖管理:通常情况下,一个项目会包含很多依赖,也可以包含依赖于其它构件的依赖。也就是说,项目依赖于一个库,而这个库又依赖于很多其它的库,这个时候通过Maven,你只需要添加那个直接依赖的库就行了,Maven会自动帮你隐式的添加间接依赖。也就是支持传递依赖。

 

 2. Maven命令使用

命令使用测试可以使用maven自动生成的App.java 和AppTest.java,为了继承我们一向的helloworld优良传统,这里编写Helloworld.java和HelloworldTest.java替换之。

 

项目主代码:Helloworld.java

package com.esom.tech.helloworld;

public class Helloworld {
	
	public String sayHello(){
		return "Hello World!";
	}
	
	public static void main(String[] args) {
		System.out.println(new Helloworld().sayHello());
	}
}

 

项目测试代码:HelloworldTest.java

package com.esom.tech.helloworld;
import com.esom.tech.helloworld.Helloworld;

import junit.framework.TestCase;


public class HelloworldTest extends TestCase{
	public void testSayHello(){
		String ret = new Helloworld().sayHello();
		assertEquals(ret, "Hello World!");
	}
}

 

2.1)用Maven编译源程序,进入命令行,切换到项目根目录,执行命令:mvn clean compile 或者 mvn clean compiler:compile,会看到如下输出:

 

编译成功,clean告诉Maven清理输出目录target/,compile告诉Maven编译项目主代码,编译后的主代码class文件存放在target\classes里面。

 

2.2)用Maven进行单元测试,进入命令行,切换到项目根目录,执行命令:mvn clean test,会看到如下输出:

 

测试成功,编译后的测试代码class文件存放在target\test-classes里面,并会在target项目下生成测试报告。

 

2.3)打包及运行

 

a. 打包:进入命令行,切换到项目根目录,执行命令:mvn clean package 进行打包,输出如下:

 

执行打包命令前,会先执行编译和测试命令,构建成功后,再在target目录下生成helloworld-0.0.1-SNAPSHOT.jar包。

 

b. 安装:进入命令行,切换到项目根目录,执行命令:mvn clean install 进行安装 ,输出如下:

 

执行安装命令前,会先执行编译、测试、打包命令构建成功,再将项目的jar包安装到本地仓库。

 

c.  运行jar:进入命令行,切换到项目根目录,执行命令:java -cp target\helloworld-0.0.1-SNAPSHOT.jar com.esom.tech.helloworld.Helloworld,输出Hello World! :

 

 

命令回顾:

mvn clean compile

mvn clean test

mvn clean package

mvn clean install

  • 大小: 65.4 KB
  • 大小: 63.5 KB
  • 大小: 24.3 KB
  • 大小: 88.7 KB
  • 大小: 62.8 KB
  • 大小: 8.7 KB
  • 大小: 73.6 KB
  • 大小: 100.9 KB
  • 大小: 18.4 KB
分享到:
评论

相关推荐

    maven笔记:maven-overlay-实战笔记

    【标题】:“maven笔记:maven-overlay-实战笔记” 在 Maven 的世界里,"overlay" 是一个重要的概念,主要用于Web项目的构建和部署。Maven overlay 技术允许你将多个项目的输出“重叠”在一起,形成一个新的项目,...

    maven笔记t-JavaWeb

    【标题】"maven笔记t-JavaWeb"主要聚焦于Java Web开发中Maven的使用,这是一套关于Maven的教程,旨在帮助开发者理解和掌握这个强大的构建工具。Maven是Apache软件基金会的一个项目,它简化了Java项目的构建、管理和...

    黑马maven笔记,第一天

    ### 黑马Maven笔记详解 #### Maven简介与特点 Maven是一款强大的项目管理和构建工具,作为Apache基金会下的一个开源项目,它完全采用Java语言编写,主要用于管理Java项目。Maven通过标准化项目构建过程和依赖管理...

    maven专题--笔记笔记(一)

    - **团队协作**:通过共享项目对象模型(Project Object Model, POM),Maven帮助团队成员保持构建的一致性,简化协同开发。 **2. 约定优于配置(Convention over Configuration)** Maven遵循一套预设的规范,例如...

    maven学习笔记1--myeclipse10中的配置

    同时,Maven还提供了源码插件,如maven-source-plugin,用于将源码打包进JAR或WAR文件,便于代码的阅读和调试。 **文件“mytest1 Maven Webapp”** 这个文件名暗示这是一个使用Maven构建的Web应用程序项目。在...

    Maven笔记.pdf

    - **部署与发布**:Maven支持多种部署策略,如使用`mvn deploy`命令将构建产物部署到远程仓库,或使用`mvn site:deploy`命令部署站点文档。 #### 总结 Maven作为一款强大的工具,不仅解决了开发过程中常见的痛点...

    maven打r51-lec-project-m笔记

    maven打包跳过test命令

    尚硅谷Maven课程笔记代码资源

    【尚硅谷Maven课程笔记代码资源】是一份全面学习Maven的资料集合,它涵盖了从基础到高级的各种知识点,旨在帮助开发者深入理解并熟练运用Maven进行自动化构建。该资源包含课件、源码和相关的笔记,使得学习过程更加...

    Maven学习笔记.zip

    5. **插件**:Maven插件扩展了Maven的功能,执行特定任务,如编译代码(maven-compiler-plugin)、创建JAR文件(maven-jar-plugin)、执行单元测试(maven-surefire-plugin)等。 ### Maven安装 Maven的安装相对...

    Maven 教程:基础篇-尚硅谷学习笔记 2022年

    **Maven教程:基础篇——尚硅谷学习笔记 2022年** Maven是一个强大的Java项目管理和构建工具,由Apache软件基金会开发。它通过提供一个标准的项目对象模型(Project Object Model,POM)来简化项目的构建过程,并...

    Maven入门实战笔记02-基础(2)

    总的来说,"Maven入门实战笔记02-基础(2)"很可能是对Maven基础操作的深入讲解,涵盖了项目创建、POM配置、依赖管理、生命周期和构建过程等内容,对于想要学习和掌握Maven的Java开发者来说,是一份非常实用的学习资料...

    java_maven高级笔记

    - **并行构建**:通过maven-assembly-plugin或maven-jar-plugin的parallel参数实现多模块并行构建。 9. **Maven的持续集成** - **CI工具集成**:Maven可以很好地与Jenkins、GitLab CI/CD等工具集成,实现自动化...

    Maven 2 学习笔记.txt

    ### Maven 2 学习笔记 #### 一、Maven 项目的基本结构及创建 Maven使用特定的目录结构来组织项目文件,通过`mvn archetype:create`命令可以快速创建项目模板。例如: ```shell mvn archetype:create -DgroupId=...

    maven笔记+教案

    Maven是一个基于项目对象模型(Project Object Model,POM)的概念,用于管理并构建Java项目。它通过一个简单的配置文件(pom.xml),自动化项目的构建、报告和依赖管理,极大地简化了开发过程。Maven的出现解决了...

    Maven笔记与资料.zip

    Maven使用一种称为POM(Project Object Model)的XML文件来描述项目,并自动解决依赖关系,使得开发人员可以专注于编写代码,而不是处理库的版本管理和构建脚本。 ** Maven的POM ** POM,即项目对象模型,是Maven...

    Maven3实战笔记

    2. **maven-surefire-plugin**:执行单元测试,可以配置测试类的包含和排除规则。 3. **maven-jar-plugin**:用于打包Java应用为JAR文件,可自定义MANIFEST.MF文件内容。 4. **maven-war-plugin**:打包Web应用为...

    maven使用笔记

    Maven 使用笔记 Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过使用一种标准的项目对象模型(Project Object Model, POM),能够自动化处理项目的构建、依赖管理和报告生成。这个笔记将...

    maven-聚合项目-springMVC

    【maven-聚合项目-springMVC】是一个基于Maven构建的Java Web项目,它采用了Spring MVC框架作为控制器层的核心技术。在这个项目中,我们不难看出开发者专注于演示Maven的聚合功能以及Spring MVC在应用开发中的作用,...

Global site tag (gtag.js) - Google Analytics