`
ln_ydc
  • 浏览: 270782 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

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

 
阅读更多

Maven版HelloWorld

Maven目录结构



 

 

1.编写POM

目录hello-world/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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.ydc.ln.mvndemo</groupId>
	<artifactId>hello-world</artifactId>
	<version>1.0-SNAPSHOT</version>
	<name>Maven Hello World Project</name>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>2.0</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<transformers>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>com.ydc.ln.mvn.helloworld.HelloWorld</mainClass>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>

 

 

2.编写主代码

目录:hello-world/src/main/java/com/ydc/ln/mvn/helloworld/HelloWorld.java

 

package com.ydc.ln.mvn.helloworld;

public class HelloWorld
{
	public static void main(String[] args) {
		System.out.println(new HelloWorld().sayHello());
	}

	public String sayHello() {
		return "Hello Maven";
	}
}

 

 

3.编写测试代码

目录hello-world/src/test/java/com/ydc/ln/mvn/helloworld/HelloWorldTest.java

 

package com.ydc.ln.mvn.helloworld;

import static org.junit.Assert.*;

import org.junit.Test;

import com.ydc.ln.mvn.helloworld.HelloWorld;

public class HelloWorldTest {
	@Test
	public void testSayHello() {
		HelloWorld helloWorld = new HelloWorld();
		String result = helloWorld.sayHello();
		assertEquals("Hello Maven", result);
	}
}

 

4.打包和运行(相关命令)

 

mvn clean

 

mvn clean compile

 这是第一次运行时,Maven需要下载相关jar包,保存在 用户名\.m2\repository 文件夹下

 这是Maven第二次运行该命令

 

mvn clean test

 

 

mvn clean package

 

mvn clean install [-U]

 

java -jar target\hello-world-1.0-SNAPSHOT.jar



  

以下命令

--查看当前项目已解析依赖
--具体看优化依赖

mvn dependency:list

 

 

mvn dependency:tree

 

 

mvn dependency:analyze

 

 

 

 

 ------------------------------------------------

 简短总结:

解析pom.xml
modelVersion 指定了当前POM模型的版本,对于Maven2及Maven3来说,只能是4.0.0(不懂为什么)
groupId 网站+项目名,如:com.lnydc.mvndemo
artifactId 项目组中唯一ID,如: hello-world
version 版本,如: 1.0-SNAPSHOT
name 友好的项目名称,但不是必须的

dependencies 声明项目的依赖
scope 依赖范围 默认为compile,该依赖对主代码和测试代码都有效

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

maven类型
jar/pom/war


命令
mvn clean 清理输出目录target/
mvn clean compile	编译
mvn clean test 测试
mvn clean package 打包,生成jar包,命名规则:artifact-version.jar,也可以用finalName来自定义该文件的名称
mvn clean install [-U] 将项目输出的jar安装到了Maven本地仓库中,可心让本机的其它项目引用该jar包
java -jar target\hello-world-1.0-SNAPSHOT.jar  

mvn dependency:list 分析项目依赖
mvn dependency:tree 列出项目的依赖树
mvn dependency:analyze 列出项目所有已解析的依赖

了解插件与插件目标,如:
clean:clean
resources:resources
compiler:compile


使用Archetype生成项目骨架
mvn archetype:generate 创建该项目的骨架,适用于Maven3,Maven2必须其他命令


 

 

 

 

 

 

 

 

 

  • 大小: 4.4 KB
  • 大小: 1.6 KB
  • 大小: 243.2 KB
  • 大小: 72.5 KB
  • 大小: 132.7 KB
  • 大小: 9.9 KB
  • 大小: 51.6 KB
  • 大小: 52 KB
  • 大小: 114.1 KB
分享到:
评论

相关推荐

    读书笔记:Maven入门与实战.zip

    读书笔记:Maven入门与实战

    maven从入门到实战

    本文首先针对maven3.3.3 的版本构建普通Java 应用和Java Web 应用进行讲解。然后针对公司私有maven 库的情况下,如何安装自有资源及在maven 应用中使用私有maven 库中的资源进行说明。接下来针对maven 与配置管理...

    maven_实战_学习笔记

    maven_实战_学习笔记 Maven安装 Maven 使用入门 主代码 位置:src/main/java 命令:mvn clean compile 解释:clean告诉maven清理target目录 compile告诉maven 编译项目主代码 测试代码 位置:src/test/java 命令...

    读书笔记:Lucene全文检索入门项目 Java实现Maven项目 Elasticsearch 基础实战.zip

    读书笔记:Lucene全文检索入门项目 Java实现Maven项目 Elasticsearch 基础实战

    SpringBoot与Shiro整合-权限管理实战-课堂笔记.docx

    - **创建Maven项目**:作为基础,项目需基于Maven构建,导入Spring Boot的父工程依赖,简化项目构建配置。 - **POM.xml配置**:在pom.xml中添加Spring Boot的起步依赖,以便利用其提供的默认配置和自动配置功能。 ...

    Java秒杀系统方案优化高性能高并发学习实战源代码以及笔记..zip

    Java秒杀系统方案优化高性能高并发学习实战源代码以及笔记..zip 章节笔记 第1章-课程介绍及项目框架搭建 知识点 使用spring boot 搭建项目基础框架 使用Thymeleaf做页面展示,封装Result统一结果 集成 mybatis + ...

    JUnit入门笔记~

    这篇入门笔记将带你深入了解JUnit的基本概念、使用方法以及其在实际开发中的应用。 **一、JUnit简介** JUnit是一个开源的、基于Java的测试框架,它简化了对代码进行单元测试的过程。通过JUnit,开发者可以快速地...

    2.2 SpringBoot与Shiro整合-权限管理实战-课堂笔记.docx

    【SpringBoot与Shiro整合-权限管理实战】 在本文中,我们将探讨如何将Spring Boot与Apache Shiro框架整合,以实现高效且灵活的权限管理系统。首先,我们需要了解这两个框架的基本概念。 **Spring Boot框架简介** ...

    springboot学习笔记(史上最全)

    2. **SpringBoot实战**:阅读相关的书籍,如《Spring Boot实战》等,获取实践案例和深入理解。 3. **社区与论坛**:Stack Overflow、GitHub、CSDN等平台有大量的SpringBoot问题解答和经验分享。 4. **开源项目**:...

    笔记CoderEsky

    【笔记CoderEsky】是一个与编程相关的学习资料集合,尤其关注Java这门广泛使用的编程语言。这个压缩包可能包含了各种笔记、代码示例、学习指南和其他有助于深入理解Java编程的知识资源。由于描述部分未提供具体信息...

    java-concurrent-programming:《实战Java高并发程序设计》笔记和二进制整理

    《实战Java高并发程序设计》笔记和源码笔记《实战Java高并发程序设计》中有很多代码范例,适合初学者通过实践入门并发编程,这本书有个问题就是前面的代码都用JDK7,第六章开始又用JDK8了笔者精心制作相关笔记并整理...

    SSM笔记和代码.rar

    2. **实战代码**:这部分可能包含了一个或多个实际的SSM项目案例,涵盖了从环境搭建、配置文件编写、Maven依赖管理、DAO层、Service层、Controller层的实现,一直到项目的部署和运行。这些代码示例可以帮助开发者...

    Eclipse开发分布式商城系统+完整视频代码及文档

    ├─补充2:Redis3.0新特性、主从复制、集群视频教程 │ │ 打开必读.txt │ │ │ ├─相关资料 │ │ redis-3.0.1.tar.gz │ │ redis-3.0.2.tar.gz │ │ redis-3.2.1.gem │ │ Redis集群.docx │ │ ...

    Java Web框架技术笔记

    《Java Web框架技术笔记》是一份深入探讨Java Web开发的资料,特别关注Spring框架及其与Vue.js的结合使用。这份笔记旨在帮助开发者理解和掌握基于Java的Web开发,包括网页、应用程序以及微信小程序的开发。 课程...

    Eclipse开发学习笔记

    《Eclipse开发学习笔记》这本书涵盖了Eclipse的基础知识、高级特性以及实战技巧,是初学者入门和进阶的良好资源。通过学习,读者不仅可以掌握Eclipse的基本操作,还能了解到如何利用Eclipse进行高效开发,以及如何...

    flink(java)笔记

    了解了基础概念后,可以尝试实现一些实战案例,如实时日志分析、流式数据聚合、实时推荐系统等,以加深对Flink的理解和应用。 以上内容涵盖了Flink Java API的基本使用和核心概念。在实际工作中,还需要结合具体...

    2024最新版python、Java视频教程包括视频、笔记、源码

    2024最新版Python视频教程提供了从基础到高级的完整学习路径,帮助学习者建立坚实的编程基础,并通过大量的实例代码和练习提升实战能力。 而对于想要学习Java的朋友们,Java基础视频课程的推出,为初学者提供了全面...

Global site tag (gtag.js) - Google Analytics