美文网首页
Java环境变量和Maven笔记

Java环境变量和Maven笔记

作者: fanyank | 来源:发表于2018-08-21 20:33 被阅读20次

Java环境变量配置

本文为看完这篇文章的笔记:https://www.jianshu.com/p/d63b099cf283
看完从此对环境变量不在困惑和恐惧

  1. PATH
    配置完该变量之后就可以在任意目录下执行java命令,如果要覆盖JDK版本,需要将新的JDK版本添加在老版本的左边,因为
    搜索顺序是从左向右。
%JAVA_HOME%/bin/;%JAVA_HOME%/jre/bin
  1. CLASSPATH
    从字面意义上理解为"path of class",那么具体的作用就是指定Java类所在的目录,如果文件目录如下
|--Desktop
|    └─ Main.java
|    ├─ target
|        └─  Main.class

那么在Desctop文件夹下执行Java命令就需要使用-classpath链接至目标class文件

java -classpath ./target Main

本机的配置

.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%MAVEN_HOME%\bin;

所以可以看到CLASSPATH配置中都会有一个.;,意思就是缺少-classpath参数时默认在当前目录下寻找目标class文件

  1. JAVA_HOME
    前面两个变量引用了该变量,故该变量也需要正确配置
C:\Program Files\Java\jdk1.8.0_51\

mvn

本文为看完这边文章的整理:https://www.jianshu.com/p/0fb5e3fb704d
这篇文章对maven的讲解非常透彻,推荐大家都去看一下

maven生命周期,声明周期中包含多个phase,如下为全部的phases
validate: 用于验证项目的有效性和其项目所需要的内容是否具备
initialize:初始化操作,比如创建一些构建所需要的目录等。
generate-sources:用于生成一些源代码,这些源代码在compile phase中需要使用到
process-sources:对源代码进行一些操作,例如过滤一些源代码
generate-resources:生成资源文件(这些文件将被包含在最后的输入文件中)
process-resources:对资源文件进行处理
compile:对源代码进行编译
process-classes:对编译生成的文件进行处理
generate-test-sources:生成测试用的源代码
process-test-sources:对生成的测试源代码进行处理
generate-test-resources:生成测试用的资源文件
process-test-resources:对测试用的资源文件进行处理
test-compile:对测试用的源代码进行编译
process-test-classes:对测试源代码编译后的文件进行处理
test:进行单元测试
prepare-package:打包前置操作
package:打包
pre-integration-test:集成测试前置操作   
integration-test:集成测试
post-integration-test:集成测试后置操作
install:将打包产物安装到本地maven仓库
deploy:将打包产物安装到远程仓库

在maven中,执行任何一个phase时,例如mvn install 都会将该阶段之前的phase全部执行一遍
maven中除了phase外,还有goal,那么如何来理解goal这个概念呢?

可以把每一个phase看做是Java中的接口,而goal就是这个接口的实现类,goal具体定义了每个阶段该如何执行,每一个
goal中都有一个execute()方法用于执行该phase所要完成的任务,那么这个goal反映到pom.xml文件就是maven的插件plugin
了,例如
compile阶段的maven-compiler-plugin插件

<plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
</plugins>

总结manven中的lifecycle,phase,goal,plugin之间的关系如下:


Lifecyle-phase-plugin-goal关系图

在maven中,有一个非常著名的principle就是convention over configuration(约定优于配置)。maven默认从<项目根目录>/src/main/java这个目录去查找Java源文件,编译后的class文件会保存在<项目根目录>/target/classes目录。

jar命令

  1. 压缩包
jar cvf filename.jar a.class b.class: 压缩指定文件;
jar cvf weibosdkcore.jar *: 全部压缩;
  1. 解压包
jar xvf CountScore.jar
  1. 运行刚生成的jar包
java -jar CountScore.jar

4.显示包文件

jar tf CountScore.jar
  1. 显示详细信息
jar tvf CountScore.jar

相关文章

网友评论

      本文标题:Java环境变量和Maven笔记

      本文链接:https://www.haomeiwen.com/subject/ldhsiftx.html