Java开发+Intellij-idea+Maven+工程构建

Java开发+Intellij-idea+Maven+工程构建

Intellij-idea是一款流行的Java集成开发环境,它支持Maven作为项目管理和构建工具。Maven可以帮助开发者自动下载项目依赖的jar包,执行编译、测试、打包等生命周期任务。本资源将介绍如何在Intellij-idea中创建、导入、转换和编译Maven工程,以及如何配置Maven的相关参数和插件。本资源适合对Java开发和Maven感兴趣,想要在Intellij-idea中使用Maven进行工程构建的开发者、学生、老师等人群。本资源的使用场景和目标是:在Intellij-idea中使用Maven来管理和构建Java工程,提高开发效率和质量。

最近效应项目的要求,学习在idea上编写项目。作为一个新手遇到问题也算是正常的,重要的是把它解决,get新技能。

编写过maven工程的小伙伴们应该都知道怎么在eclipse中编译maven工程:右键工程–> run as -->maven install。简单明了。

但是在idea上maven工程有自己的窗口,而且窗口中的maven项目的目录与project窗口中的目录不一样。在这里我就分享一下自己的经验。

1、打开maven项目窗口:工具栏–>Help–>Find Action,在弹出的窗口里的文本框输入:maven projects

在这里插入图片描述

2、在打开的maven project窗口中,点击YourProject->Lifecycle->package->Run Maven Build执行打包,生成的war默认在工程的target目录下。

在这里插入图片描述

IDEA如何执行maven命令

在IDEA主界面左下角找到 Terminal 点击进入,直接输入想执行的命令即可。

Exec Maven Plugin全面解析和使用示例

1.为什么使用exec?

现在的工程往往依赖
众多的jar包,不像war包工程,对于那些打包成jar包形式的本地java应用来说,通过java命令启动将会是一件极为繁琐的事情,原因很简单,太
多的依赖让参数-classpath变得异常的恐怖。为此,在发布应用时,一般使用两种方法来启动应用程序:一种是通过工具将工程及其所有依赖的jar包
打包成一个独立的jar包(在maven里有两个插件assemly和shade是用来完成这种工作的);另一种方法是编写一个run.bat文件,文件
包含一个启动应用的java命令,很显然,这个命令的classpath必须包含全部依赖的jar包。但是对于尚处在开发阶段的应用来说,第一种方法需要
将所有jar包解压再重新打包,因此非常耗时,特别是工程非常大的时候。第二种方法的问题在于,对处在开发阶段的工程,经常需要引入或升级jar包,这就
需要频繁地修改run.bat文件。实际上,对于使用maven管理的工程,完全可以通过maven来获取工程的classpath,简化应用程序的启动
命令,这正是maven插件exec被设计出来的主要动机。使用exec比使用java命令去启动应用程序最大的优势就在于:你不需要再去为-classpath而伤脑筋了。

2. exec:exec和exec:java的区别

exec
主要由两个goal组成:exec:exec和exec:java。你应该如何选择呢?首先,你需要记住,exec:exec总是比exec:java强
大而灵活,这一点会在后面的示例中体现出来,除此之外,两者的主要区别是在线程管理上:exec:exec总是启动一个新的线程,并且在只剩下守护线程的
时候从VM上退出(关闭应用程序)。而对于exec:java,当所有非守护线程结束时,守护线程会被joine或interrupt,应该程序不会关
闭。但是对于一般的使用者来说,这种差别并不重要。对于两者的选择,一般来说,如果你的工程启动非常简单,不需要设置jvm参数、系统属性、命令行参数,
那么就用exec:java,你只需要指定一下mainClass,一切就OK了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/303589.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

web提示框属性的运用

效果展示&#xff1a; 注意事项&#xff1a; 引用JQuery文件地址和图片地址要更换一下。提示框属性的宽应该和图片的宽保持一致。 html/css/javascript页面代码&#xff1a; <!doctype html> <html> <head> <meta charset"utf-8"> <tit…

【Python学习】Python学习8-Number

目录 【Python学习】Python学习8-Number 前言在变量赋值时被创建Python支持四种不同的数据类型整型(Int)长整型(long integers&#xff09;浮点型(loating point real values)复数(complex numbers) Python Number 类型转换Python math 模块、cmath 模块Python数学函数Python随…

【现代密码学】笔记2 -- 完善保密性《introduction to modern cryphtography》现代密码学原理与协议

【现代密码学】笔记2--完善保密性《introduction to modern cryphtography》 写在最前面2 完善保密性的介绍2.1 定义和基本属性加密方案的组成密钥产生算法 (Gen)加密算法 (Enc)解密算法 (Dec)概率分布独立性 完美保密加密3. 回顾加密词法4. 完美保密&#xff08;**Perfect Sec…

芯课堂 | 如何配置SWM系列系统时钟?

如何配置SWM系列 系统时钟&#xff1f; 华芯微特科技有限公司SWM系列芯片可通过软件配置改变时钟的速度&#xff0c;可以让我们的设计更加灵活,频率可选空间也更加广泛&#xff0c;用户可以根据自己的实际需求配置需要的系统时钟。为了让用户能够更简单的使用这一功能&#xf…

进阶分布式链路追踪

另外我的新书RocketMQ消息中间件实战派上下册&#xff0c;在京东已经上架啦&#xff0c;目前都是5折&#xff0c;非常的实惠。 https://item.jd.com/14337086.html​编辑https://item.jd.com/14337086.html “RocketMQ消息中间件实战派上下册”是我既“Spring Cloud Alibaba微…

Linux:进程的通信

目录 进程间的通信 管道 1.概念 2.匿名管道 3.命名管道 4.匿名管道与命名管道的区别 5.总结管道的特点 共享内存 1.原理 2.共享内存的建立 3.代码 1.相关函数 2.总结 进程间的通信 1.进程间通信目的 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程…

服务器宕机怎么办?怎么预防宕机?

相信不少用户会听到或者在文章中提到电脑宕机或者服务器宕机&#xff0c;不少用户对宕机的意思不太理解。那么服务器宕机是什么意思&#xff1f; 宕机属于计算机的术语&#xff0c;指电脑或者服务器不能正常工作。口语中我们简单的把停掉机器叫做down机&#xff0c;转换为汉字是…

高通平台开发系列讲解(USB篇)adb function代码分析

文章目录 一、FFS相关动态打印二、代码入口三、ffs_alloc_inst四、ep0、ep1&ep2的注册五、读写过程沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文主要介绍高通平台USB adb function代码f_fs.c。 一、FFS相关动态打印 目录:msm-4.14/drivers/usb/gadget/fun…

Ubuntu下Lighttpd服务器安装,并支持PHP

1、说明 Lighttpd 是一个德国人领导的开源Web服务器软件&#xff0c;其根本的目的是提供一个专门针对高性能网站&#xff0c;安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销、cpu占用率低、效能好以及丰富的模块等特点。 Lighttpd是众多OpenSource轻量级…

DSP2335的时钟PLL配置

PLL模块框图 xclkin是直接进来的外部时钟&#xff1b; 而下面的是振荡器&#xff08;晶振出来&#xff09;的时钟 PLLSTS 锁相环状态寄存器 PLLCR 锁相环控制寄存器 PLLSTS【oscoff】 决定着外部时钟的输入 PLLSTS【plloff】 锁相器关闭位 0使能PLL 锁相环控制寄存器…

day6:进程间的通信

思维导图&#xff1a; 实现多个进程之间的收发信息操作 create.c&#xff1a; #include <head.h> int main(int argc, const char *argv[]) {if(mkfifo("a_send_b",0664)!0){perror("");return -1;}if(mkfifo("b_send_a",0664)!0){perro…

vue3 封装一个按钮组件(可自定义按钮样式)

效果图 鼠标悬浮有对应的文字提示&#xff0c;且图标出现背景色和颜色 实现 目前提供五个固定样式的图标及三个用户自定义的图标&#xff0c;可根据需要补充 组件代码 <script setup lang"ts"> import { onMounted, PropType, reactive, ref, watch } from v…

jupyter内核错误

1、在dos窗口输入以下命令激活环境&#xff1a;anaconda activate 【py环境名&#xff0c;比如py37】&#xff08;目的是新家你一个虚拟环境&#xff09; 2、在虚拟环境py37下安装jupyter notebook&#xff0c;命令&#xff1a;pip install jupyter notebook 3、安装ipykerne…

python24.1.8

嵌套/多条件判断 嵌套 多条件&#xff1a; 实践&#xff1a;

pybind11实现numpy和OpenCV Mat的数据交互

1、编译安装pybind11 下载源代码&#xff1a;https://github.com/pybind/pybind11&#xff0c; 文档&#xff1a;https://pybind11.readthedocs.io/en/stable/compiling.html 解压后进入到命令行&#xff0c;如果有conda环境&#xff0c;就先进入想要的conda环境&#xff0c…

【python入门】day22:机票订购界面、北京地铁1号线运行图

机票订购界面 print(✈国内\t✪国际&#xff0c;港澳台\t↘发现低价) print(----------------------------------) print(航班类型&#xff1a;⊙单程 ⊙往返 ⊙多程&#xff08;含缺口程&#xff09;) print(出发城市&#xff1a;北京) print(到达城市&#xff1a;长春) pri…

OpenHarmony - 基于ArkUI框架实现日历应用

前言 对于刚刚接触OpenHarmony应用开发的开发者&#xff0c;最快的入门方式就是开发一个简单的应用&#xff0c;下面记录了一个日历应用的开发过程&#xff0c;通过日历应用的开发&#xff0c;来熟悉基本图形的绘制&#xff0c;ArkUI的组件的使用&#xff0c;UI组件生命周期&a…

Java集合框架概念详解

目录 1. 什么是Java集合框架&#xff1f;2. 常用接口介绍3. 常用实现类介绍4. 集合框架的应用场景 前言&#xff1a; Java集合框架是Java编程中最重要的工具之一。它提供了一套强大而灵活的数据结构和算法&#xff0c;用于存储和操作数据。本文将详细介绍Java集合框架的概念、常…

前端算法总结

基础–时间复杂度&空间复杂度 什么是复杂度分析 &#xff1f;为什么要进行复杂度分析 &#xff1f;如何进行复杂度分析 &#xff1f; 双指针 最接近的三数之和通过删除字母匹配到字典里最长单词 滑动窗口 滑动窗口的最大值 二叉树 二叉树的最近公共祖先 堆 最小的k个数前 K…

Vant2组件库van-list+Toast下拉加载滚动条回顶问题

目录 List 列表 Toast 轻提示 解决方案 1、不使用 Toast 的 加载提示 2、修改调整 pointer-event 属性值 3、判断是否为第一次加载再使用 背景 &#xff1a; 移动端项目 开发时&#xff0c;有数据长列表展示的场景需求&#xff0c;此时就用到了 Vant2 组件库里面的 <v…