首页 > 编程知识 正文

maven java(eclipse引入maven项目)

时间:2023-05-06 13:30:28 阅读:84436 作者:3043

1 引入

在日常的Java开发中,Maven应该成为了不可缺少的工具。 当然,也有人用Gradle 那么,Maven到底是什么? 不是依赖部署工具吗? 我相信很多人都和我有同样的感觉。 但是,一般来说,感觉上的东西大多不可靠。 我在网上收集了一些资料,翻了官网,重新整理了Maven的资料。

根据

2 Maven 简介

维基百科的说法,Maven是软件项目管理和自动构建工具。 光从字面上看,我不知道这是要传达什么意思。 据我了解,Maven其实是一种开发工具,与IDEA相辅相成。 我们日常使用IDEA的编译项目的时候,其实用的是Maven。 但是,这些操作都隐藏在强大的IDEA中,我们使用的是IDEA,给人一种与Maven没有联系的错觉。

在说

3 Maven 的命令

命令行之前,请先弄几个专业名词。

名称说明groupId软件包名称artifactId项目名称

groupId的artifactId被称为坐标,如果确定了他们的值,我们就可以根据他们的坐标找到他们。

创建

mvn-b体系结构:生成器

--darchetypegroupid=org.Apache.maven.archetypes-d组id=com.my公司. app

- dartifactid=我的应用程序(9500.163.Com ) () ) ) ) ) ) ) ) ) )到) ) ) ) ) )中的一个示例。

现在,maven自动创建了一个带有hello world的maven项目。 包名为com.my公司. app; 项目名称为my-app。 看这里就知道为什么Maven是项目构建工具了。 我个人觉得Maven和大前端的npm工具有相似之处。

编译

mvncompile根据字面流程,我知道这个命令是编译命令。 他是不是编译了test文件夹内的源代码? 命令将生成一个目标文件。 文件夹中是编译后的内容。

清除

mvnclean此命令主要清除编译后生成的target文件夹。

打包

mvn包此命令缺省情况下将项目转换为jar包。 当然,也可以做成war包。

安装

mvninstall这个命令可以将项目做成jar,放在本地仓库。

要理解

4 仓库

maven,仓库的概念是不可缺少的。 请让我(灵魂画师)画张图。

项目所需的依赖都是从本地仓库中获得的,本地仓库是自己的电脑,我们引入的各种依赖都放在本地仓库中。 如果说一般的依存有问题的话,就是没有本地仓库的依存。 也许我们可以先删除本地对应的依赖,试一试。 从中可以看到自制仓库,也就是我们说的便服。 可以保管一些我们开发的基础包。 从自制仓库引进依赖就太早了。 当然,如果自建仓库中没有我们需要的依赖,自建仓库会提出请求,委托偏远的中央仓库。 中央仓库没有它就真的没有。

5 POM

现在我们的重要任务登场了。 --POM. Maven项目包含一个pom.xml文件。

这是最简单的pom文件。 这个pom文件应该很熟悉。 引入依赖是从这里开始的。 什么也不说,说点别的。

包类型

//瓦

打包jar打包此标签确定项目是jar包或war包。 一般来说,SpringBoot项目是war包,放入tomcat中执行。 当然,也可以运行jar包。 说到底只是SpringB

oot 内置了tomcat ,强的一批。

加进来

<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build>

如果我们把一下文件,例如 xml 后缀的 mapper 文件放在 resources 里面,编译的时候会发现他们没有编译进去,是因为 <filtering> 标签默认是 false,我们需要 true。

去掉他

<exclusions> <exclusion> <groupId>sample.ProjectE</groupId> <!-- Exclude Project-E from Project-B --> <artifactId>Project-E</artifactId> </exclusion> </exclusions>

部署到远程

<distributionManagement> <repository> <id>mycompany-repository</id> <name>MyCompany Repository</name> <url>scp://repository.mycompany.com/repository/maven2</url> </repository> </distributionManagement>

当我们造好轮子之后,想部署到远程中央仓库,就添加上面标签。同时在 setting.xml(Maven 安装的目录下)添加以下

<servers> <server> <id>mycompany-repository</id> <username>jvanzyl</username> <!-- Default value is ~/.ssh/id_dsa --> <privateKey>/path/to/identity</privateKey> (default is ~/.ssh/id_dsa) <passphrase>my_key_passphrase</passphrase> </server> </servers>

多个模块

如果我们想一次建造几个maven项目,也是没有问题的。比如有两个模块(my-app、my-webapp),目录如下

+- pom.xml +- my-app | +- pom.xml | +- src | +- main | +- java +- my-webapp | +- pom.xml | +- src | +- main | +- webapp

在顶层 pom.xml 需要添加 <modules> 标签,如下

<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.mycompany.app</groupId> <artifactId>app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>my-app</module> <module>my-webapp</module> </modules> </project>

然后选一个做老大(webapp),在他的 pom 文件里加入 my-app 的依赖

<dependencies> <dependency> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> </dependency> ... </dependencies>

然后再这两个项目(webapp、my-app)的 pom 文件里面加入顶层的 <parent> 标签

<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"> <parent> <groupId>com.mycompany.app</groupId> <artifactId>app</artifactId> <version>1.0-SNAPSHOT</version> </parent> ...

最后执行 mvn verify 命令,就会在老大项目(webapp)的 target 文件夹里生成 war 包。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。