maven怎么在内网打包_Maven--项目管理工具(一)

4ed6a113672aae90f71bd43500c53ae2.png

【Maven】

☞Maven入门教程-Maven项目实战☜

一、Maven引入

1. 传统方式中项目jar包资源的问题

1.1 传统方式中项目jar包资源的问题

问题一:

项目中的jar包资源需要我们自己从网上下载后,手动导入到项目中使用,一旦jar包资源过多,容易造成遗 漏并且不好管理。

问题二:

假如我们有两个项目,项目A和项目B,如果项目A中需要使用项目B 中的某些资源,需要我们自己手动的将项目B中的资源导出为jar包,然 后手动导入到A项目中,比较麻烦。

总结:

在项目中使用第三方的资源来完成自己的功能开发时,第三方资源的查找下载以及管理都是手动的,我们自己来做,极大的影响了开发效率。

1.2 解决

我们是干什么的,我们是搞程序开发的,那么能不能开发一款软件,专门来管理项目中的第三方的jar包资源呢?我们可以通过该软件来导入我们自己项目开发需要的jar包资源,同时还可以通过这款软件将自己的项目中的资源导出为jar包对外提供服务呢?答案是可以的

核心功能:

  • 帮助我们找资源
  • 将我们自己的项目中的某些代码打包,供别人使用

1.3 实现

Maven项目资源管理工具

注意:Maven只是个管理工具,不参与到项目功能的开发的。

2. Maven的介绍和作用

Maven的本质其实就是一款管理软件。

作用:

  • 通过maven来导入第三方的jar包资源到项目中
  • 通过maven将自己项目导出为jar包资源对外提供服务

3. Maven的基本原理图

6d6d014f1752f84d9aa4fe794c1031a4.png

3.1资源消费者

通过Maven工具来获取第三方的资源到自己的项目中使用

需要在pom.xml文件中提供资源的坐标

3.2资源提供者

通过Maven将自己项目中的代码功能打包,然后提供给其他人使用。

注意:项目必须是 通过Maven工具来创建的。

3.3总结

我们一个项目既可以是资源的消费者,同时也可以是资源的提供者。

所以,以后我们创建的项目都通过Maven来创建。

4. Maven的专业术语

4.1本地仓库

maven软件在本地电脑中存储第三方法资源的位置

4.2云仓库

maven在本地仓库中没有对应的资源后会自动的去云仓库中下载,云仓库就是所有的程序员开发好的jar包资源的在线存储仓库(百度云,阿里云)

4.3资源坐标

maven查找需要的资源的定位地址,类似URL。资源坐标必须是唯一的。

包括三部分:

  • 资源的路径
  • 资源的名称
  • 资源的版本号

二、Maven的项目类型

1. 项目的概念

在刚开始学习java时,我们直接手动创建单个的java文件,并在该文件中声明对 应的功能代码,自己使用java和javac命令完成文件的编译和运行,当时感觉特别的神奇,尤其是在控制台中显示出”hello world”时,简直是惊为天人,美滋滋。但是随着我们的深入学习,我们发现一个功能的实现不仅仅需要一个java文件,可能是很多java文件的联动操作。但是这个时候如果我们还是自己手动单个创建java文件,会造成java文件不好管理。于是,我们将处理同一个功能的java文件放在一起,称之为一个java项目。而为了让我们不同的程序员之间沟通方便,我们规定java项目中的目录结构体系是大家都能够认识的,于是就诞生了JAVASE项目的结构体系。并且又为了提升开发效率,IDE工具可以直接帮助我们创建一个JAVASE项目,我们只需要声明项目代码即可,不需要手动创建项目的目录结构。

2. 传统项目类型

2.1 JAVASE项目

用来开发java项目的目录结构体系,是IDE工具帮助我们创建的主要是便 于代码

资源的管理,最终编译后的结果和我们手动是相同的。

2.2 JAVAEE项目

是一个web项目,该项目的运行不仅仅需要JDK的支持还需要服务器容器的支持。

IDE工具帮助我们快速购建的项目结构,便于管理和查看项目的代码资源。不同的

IDE工具虽然在项目的结构上略有不同,但是最终运行的代码结构体系是相同的。

2.3 总结

  • 开发阶段

不同的IDE工具在开发阶段创建的项目体系结构是不同的

  • 上线阶段

不同的IDE工具在项目开发完成后最终运行的代码的项目结构体系是相同的。

3. Maven项目类型

3.1问题

我们希望使用maven工具将我们自己的项目打包,打包后将资源存储到maven的本地仓库中给其他人使用,这样就意为着,maven需要能够识别我们创建的项目结构体系,这样才能进行资源的打包。但是maven是第三方的工具,maven本身是无法识别我们目前通过IDE工具创建的JAVASE和JAVAEE的项目体系的,怎么办?

3.2解决

我们创建的项目需要是Maven能够识别的项目,我们需要通过maven来创建项目不就可以了。

3.3实现

POM类型:讲到再说

WAR类型:相当于JAVAEE项目

JAR类型:相当于JAVASE项目

三、Maven项目类型和JAVASE项目和JAVAEE项目的关系

1. 问题

既然我们现在创建项目是通过maven工具来进行创建的,但是项目开发完成后运行项目的不是maven。比如web项目,以前我们直接使用IDE工具创建一个tomcat服务器能够直接识别的web项目结构,完成功能开发,等开发完成后,我们可以直接将项目放到tomcat服务器中运行,但是使用maven创建的项目结构和原有的web项目结构完全不同,那么我们开发完成后项目怎么放到tomcat中运行呢?

2. 解决

maven是个项目资源管理工具,只做资源的管理,不参与项目的运行的。那么是不是在项目开发阶段使用maven管理的时候是maven能够识别的结构体系,在运行阶段是jdk或者tomcat能够识别的结构体系,岂不是很爽美滋滋。

3. 实现

因为项目运行的是编译后的内容,不是源码文件。这样虽然maven项目源码的结构体系和JAVASE,JAVAEE的都不同,但是它们编译后的项目结构体系就是相同的不就可以了。

四、Maven的安装配置

1. 在本地安装并配置maven

1.1 将maven的压缩包解压到指定的文件夹中

3a7e7cf1587f0a84171c4bf368f6db66.png

1.2 maven的目录介绍

597b6ae40020258549d88ce5fde6c310.png

1.3 配置maven的本地仓库地址

在conf文件夹下编辑setting.xml文件在第54行声明本地仓库地址

235dddcc006908e4430985e8997fc952.png

1.4 配置maven的云仓库地址

在conf文件夹下编辑setting.xml文件在第159行声明云仓库地址

0eb52e5a0d8beb2c406d60f829d56579.png

1.5 配置maven的jdk版本

因为maven project是由maven地址调用JDK来完成编译,需要配置jdk的版本,maven会自动的从网上下载对用的jdk来使用。

198be409e42b86b0caab611f689b5db9.png

2. 在idea中集成maven

cb6b9ed5957034185fe98f7a11ba3a9b.png

五、Maven project的创建和使用

1. Maven的jar类型项目

1.1 创建jar类型的项目

(1)点击file-->new-->moudle-->maven,然后点击下一步即可

7d9cddbe9b6951fb1e3af33455a4bc1e.png

(2)填写当前创建的maven项目的资源坐标,便于其他项目来调用我们的项目资源。

2313328aab36ca379c5e6a0b855c0f25.png

(3)设置项目在本地中的存储路径,一般就是在当前的工作空间中

c8f27bdc0daddf533756638af3d43120.png

(4)点击finish完成创建,然后在右下角的提示中点击import Changes

27304ee5cbdb7b9ad8ac7e7c26670412.png

1.2 jar类型项目的结构和特点

(1)jar类型项目的结构

885e3c1b7506d100335bc361361475c9.png

(2)jar类型项目的特点

jar类型的项目,相当于我们以前的JAVASE项目。

jar项目编译后的项目结构体系和原有的JAVASE项目编译后的结构体系相 同

8170f33b06a06ac48a6884590b3a4a09.png

默认在test目录下的测试代码是不会编译到项目中的。

2. Maven的war类型项目

2.1 maven的war类型项目的创建

(1)点击file-->new-->moudle-->maven,然后选择项目的模板

b529b5fce1cbfd6385ca2b3c77236e3a.png

(2)声明当前项目自己的资源坐标,方便其他项目调用

d6d94fe11154e054c600aaa6b8eb7418.png

(3)直接点击下一步

f9588b0088731da5b595ca8263e6878d.png

(4)声明项目在本地的存储路径,一般是工作空间

2dbd279fe5bc06702e738448b66b4191.png

(5)点击finish,完成创建,在窗口中点击import changes

fd2cece944eecb794c0cb10aa4439cba.png

2.2 war类型项目的结构配置

(1)在war项目下的src下的main目录下手动创建java和resources目录。

java目录作为java源码存方法目录

resources目录作为配置文件目录

8669d4c36516dbd081237fc926107e01.png

(2)将创建的java目录设置为源码目录

d7331ebc1ea9ae790decdef249e0d15d.png

(3)将resources目录设置为配置文件存储目录

a8c0944f2260cf2298bd352edf815629.png

2.3 war类型项目结构的作用

e4348b984f03ebe7b6b7ac4fdf72aa95.png

>>>学习交流群< < <课件,视频,项目,源码,你想要的这里都有

加群暗号“知乎”

风里雨里,我们等你~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用`java -jar`命令运行一个Maven打包的项目时,出现"no main manifest attribute, in java-***-SNAPSHOT.jar"错误通常是由于缺乏主清单属性导致的。 主清单属性是用于标识可执行JAR文件的入口点的,它告诉Java虚拟机应该运行哪个类作为程序的起点。在Maven打包过程中,如果没有正确配置主清单属性,那么在运行JAR文件时会出现此错误。 有几种可能的原因导致这个问题。其中一种可能是在创建Spring Boot项目时,自动导入的spring-boot-maven-plugin插件中添加了`<skip>true</skip>`标签,导致主类被忽略。 要解决这个问题,你可以在pom.xml文件中手动配置主清单属性。你需要确保在`<build>`标签下的`<plugins>`标签中添加了正确的配置,指定了项目的主类。例如: ``` <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.example.MyApplication</mainClass> </configuration> </plugin> </plugins> </build> ``` 在上面的配置中,`com.example.MyApplication`是你的项目的主类。你需要根据你的项目结构和主类的包名进行相应的修改。 完成配置后,重新运行Maven打包命令,确保生成的JAR文件中包含了正确的主清单属性。然后再次尝试用`java -jar`命令运行JAR文件,这个错误应该就会消失了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Mavenmaven生命周期-jar中没有主清单属性no main manifest attribute, in java](https://blog.csdn.net/forest_long/article/details/129474087)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [java打包maven启动报错jar中没有主清单属性](https://blog.csdn.net/Xhani/article/details/131243454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值