陈老师说了,没强调的意味着现在不要花精力去研究,会用即可。后面不断用它自然不就会了吗。
maven被陈老师讲完之后简直太特么简单了,以下是步骤:
1. eclipse- new project--maven 创建maven项目
2. 一直next即可,group id就是公司名,aritfactId就是模块名,version随便输入0.0.1或者1.0.0,package选你给我打成jar包,然后它会让你选模板,模板选一个quick-start,它就是包含一些基本的东西让我们快速开始。
以后要创建web或者其他项目,再选其他模板。
3. maven创建好了,怎么用呢?
比方说,你已经知道你打算用一个类了,那你肯定知道它的类名,现在把它的类名输入到 【maven central repo】https://search.maven.org 这个网址的搜索栏里,你就可以获得它的maven写法。
4. maven写法如下:
group id就是公司名
artifactId就是模块名、项目名
version就是版本号
dependency为什么会有type为pom,默认的值是什么?
dependency中type默认为jar即引入一个特定的jar包。那么为什么还会有type为pom呢?当我们需要引入很多jar包的时候会导致pom.xml过大,我们可以想到的一种解决方案是定义一个父项目,但是父项目只有一个,也有可能导致父项目的pom.xml文件过大。这个时候我们引进来一个type为pom,意味着我们可以将所有的jar包打包成一个pom,然后我们依赖了pom,即可以下载下来所有依赖的jar包。
【简单来说就是把pom给你,jar包会自动被下载下来。】
5. maven工具使用(高级程序员都直接mvn package编译打包,不需要eclipse或者只把eclipse当成编辑器,就和用notepad一样)
你可以下载一个maven下来,无需安装直接解压。
然后你可以用Notepad直接写代码,或者选eclipse下面的一个项目。
代码或者项目准备好之后,
进cmd cd到eclipse项目的目录下 比如c:\workspace\hdfs
然后输入 c:\tools\maven\bin mvn package (如果你没设置mvn的环境变量,你就需要输入完整的bin目录来执行mvn)
进入到bin目录执行mvn(mvn的程序)package进行编译打包,编译大家都懂的,mvn package得到的结果是一个jar包。
编译完成的.class
文件将会出现在target/classe
目录下,具体文件夹就是c:work hdfs \target\hdfs-0.0.1.jar。
6. mvn其他命令
mvn install package 本地仓库中安装这个jar包(暂时还不懂有啥用)
mvn clean package 清除刚才生成的项目
7. fat jar
顾名思义就是胖包,就是把一个项目的文件和他所依赖的jar都打包成一个jar。
以下是fat.jar在maven的pom.xml中的实现(暂时没时间看,用到再说)
问题
在使用“mvn package”命令编译application之后,生成的.jar文件不能直接被“java -jar”命令运行,一般都是因为:
1. Manifest中没有主清单属性。
2. 依赖项在.jar文件中不存在。
这两个问题可以通过在pom.xml中增加build plugin来解决。
方法1
使用maven-assembly-plugin来打包fat-jar。
假设我们的application的Main Class是practice.spring.sprice.App,那么我们需要在pom.xml中增加如下一段:
这种方法打包出来的.jar中:
1. practice.spring.sprice.App会被作为主类。
2. 包含所依赖的所有jar的内容(这些jar包会被解开)。
方法2
使用spring-boot-maven-plugin来打包fat-jar。
在pom.xml中增加如下一段:
这种方法打包出来的.jar中:
1. org.springframework.boot.loader.JarLauncher会被作为主类,它会自动调用应用程序中的main方法。
2. 包含所依赖的所有的jar包(这些jar包不会被解开)