idea工具maven projects里面有9种生命周期,生命周期是包含在一个项目构建中的一系列有序的阶段。
一、最常用的两种打包方法:
1.clean,package(如果报错,很可能就是jar依赖的问题)
2.clean,install
二、9种生命周期:
1.clean,清理,在进行真正的构建之前进行一些清理工作,移除所有上一次构建生成的文件。执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件。
2.validate,验证,验证工程是否正确,所需的信息是否完整。
3.compile,编译源码,编译生成class文件,编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。
4.test,单元测试,测试。
5.package,打包,将工程文件打包为指定的格式,例如JAR,WAR等。这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功能进行编译,同时会在target目录下生成项目的jar/war文件。如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错,因为找不到所依赖的b项目,说明a项目在本地仓库是没有找到它所依赖的b项目,这时就用到install命令了
6.verify,核实,检查package是否有效、符合标准。
7.install,安装至本地仓库,将包安装至本地仓库,以让其它项目依赖。该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用(如果没有设置过maven本地仓库,一般在用户/.m2目录下。如果a项目依赖于b项目,那么install b项目时,会在本地仓库同时生成pom文件和jar文件,解决了上面打包package出错的问题)
8.build:功能类似compile,只是只对整个项目进行编译。
9.site,站点,生成项目的站点文档
10.deploy,复制到远程仓库
三、build和compile的区别
1.Compile:只编译选定的目标,不管之前是否已经编译过。
2,Build:是对整个工程进行彻底的重新编译,而不管是否已经编译过。Build过程往往会生成发布包,这个具体要看对IDE的配置了,Build在实际中应用很少,因为开发时候基本上不用,发布生产时候一般都用ANT等工具来发布。Build因为要全部编译,还要执行打包等额外工 作,因此时间较长。
IDEA打成jar包并在windows后台运行
(1)方法一:
一、IDEA打成jar包
1、File=>Project Structure=>Project
选择windows中安装的java版本,idea默认使用自己的java环境,需要改为windows中安装的版本,不然后期jar包在windows中运行时会java版本不对的错误。
2、File=>Project Structure=>Artifacts
接着选择main方法
选择完之后出现以下界面,点击“OK”
3、返回idea的编辑界面后,Build=>Build Artifacts
接着选择build
(2)方法二:
找到主方法的入口,然后执行clean,package
二、在windows后台运行jar包
快速进入到目录下:
按住shift键,然后鼠标右键出现在此处打开Powershell窗口
在cmd中可以使用java -jar xxxxx.jar方式运行一个jar文件,这种方法运行一旦关闭该cmd界面就会停止运行。编辑.bat文件,使用javaw方式运行不用担心文件会在不小心关闭运行界面时停止运行程序。
1、在jar文件的同级目录下面编写两个.bat文件,分别是“启动.bat”和“停止.bat”。
2、启动.bat的内容为:
@echo off
title 准备启动设备驱动...................
color 3E
start javaw -jar -Dloader.path=.,resources,lib siccQh01.jar
echo .
echo ------------ 启动成功 --------------
echo .
echo ------------ 启动成功 --------------
echo .
echo ------------ 启动成功 --------------
echo .
echo ------------ 启动成功 --------------
echo .
timeout /t 2
exit
执行该bat文件会在windows后台运行siccQh01.jar,2秒之后自动关闭
3、停止.bat的内容为:
@echo off
title 停止设备驱动
color 3E
taskkill -f -t -im javaw.exe
echo .
echo ------------停止成功!--------------------
echo .
echo ------------停止成功!--------------------
echo .
echo ------------停止成功!--------------------
echo .
echo ------------停止成功!--------------------
echo .
timeout /t 2
exit
执行后会结束javaw所有进程。
出现问题: