`

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笔记.docx

    Maven是一个强大的项目构建工具和依赖管理工具,用于简化和自动化Java项目的构建、发布和管理过程。它具有集中式的项目描述文件,可以帮助开发人员更轻松地管理项目的依赖、构建过程和发布版本。以下是对Maven的描述...

    maven的优缺点 项目

    Maven-install:java先编译,后运行 在项目的target中会生成jar包和war包, 在仓库中生成相应的目录,里面的放的是jar包和war包 Maven-clean:会把项目中的class文件和jar包war包删除 Maven-test:运行所的测试...

    maven window下安装包

    第10章:使用Maven进行测试/10.1 maven-surefire-plugin插件/10.1.2 测试用例所在的目录 第10章:使用Maven进行测试/10.2 测试要求添加的依赖 第10章:使用Maven进行测试/10.3 新建要测试的工程 第10章:使用Maven...

    最新 archetype-catalog.xml (截止2018/5/26前最新)

    当我们使用maven原型生成项目骨架时,经常会在[INFO] Generating project in Interactive mode这个地方特别慢,这里并不是什么出错卡住的原因,你打开mvn的debug模式就可看到下面的信息:[DEBUG] Searching for ...

    maven-example

    在工程中使用mvn archetype:create-from-project,maven会将当前工程作为一个骨架工程,在target/generated-sources/archetype 生成相应的骨架目录,前往生成的archetype目录,执行mvn isntall 命令,将生成的...

    springBoot笔记一-来自于百度文库1

    1.1 简单例子首先创建一个一般的Maven项目,有一个pom.xml和基本的src/main/java结构 1.1.1 pom.xml 文件&lt;project

    springBoot笔记二-来自于百度文库1

    1.1.1 pom.xml 文件&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht

    Maven 入门

    Maven 入门笔记,记录 maven 学习路程,从安装到私有仓库,从命令行到m2eclipse

    Spring-Project:用Java和Spring Framwork创建网站

    而且我使用Maven来构建项目。 这是我关于这个项目的计划。 更好地了解Spring框架。 可以使用spring框架创建网站。 可以连接到mysql并在数据库上创建,更新,插入,删除。 使用bootstrap CSS框架在不同屏幕(例如...

    java8stream源码-test-challenge:测试挑战

    java8流源码作者的笔记 我选择了实施《银河商人指南》问题 编码环境、编译、运行 环境 该项目是一个非常简单的标准Maven项目。 使用mvn命令生成后,我将项目导入 Eclipse(Mars for JavaEE)并在那里进行编辑。 因此...

    swing界面设计之JTree

    (十九) 向 Java 应用程序伸出援助之手——用 JavaHelp 2.0 构建下一个 Java 应用程序的帮助系统 115 入门 116 使用 HelpSet 117 HelpSet 数据文件 118 helpset 文件 118 maps 部分 119 view 部分 119 presentation ...

    毕设新项目-基于pringboot实现的旅游网站源码+sql数据库+项目部署说明.zip

    2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...

    Spring Boot 笔记1

    1.1 简单例子首先创建一个一般的Maven项目,有一个pom.xml和基本的src/main/java结构 1.1.1 pom.xml 文件&lt;project

    使用springboot+mybatis+mysql实现的毕业设计-旅游网站.zip

    使用springboot+mybatis+mysql实现的毕业设计-旅游网站.zip 毕业设计项目,将ssm技术切换为springboot,使用内置的tomcat即可运行项目。 管理系统 url: http://localhost:8080/managerLoginPage user: admin ...

    backbone:骨干网使用示例

    笔记带有RestHub框架的骨干网Resthub与骨干网一起使用的示例。 自动启动: mvn clean package jetty:run测试网址访问: http://localhost:8080/休息立面示例: http://localhost:8080/api/sample## Skin Bootstrap...

Global site tag (gtag.js) - Google Analytics