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了。

相关推荐
周某某~2 分钟前
四.抽象工厂模式
java·设计模式·抽象工厂模式
异常君30 分钟前
高并发数据写入场景下 MySQL 的性能瓶颈与替代方案
java·mysql·性能优化
烙印60134 分钟前
MyBatis原理剖析(二)
java·数据库·mybatis
你是狒狒吗36 分钟前
TM中,return new TransactionManagerImpl(raf, fc);为什么返回是new了一个新的实例
java·开发语言·数据库
勤奋的知更鸟1 小时前
Java编程之组合模式
java·开发语言·设计模式·组合模式
千|寻1 小时前
【画江湖】langchain4j - Java1.8下spring boot集成ollama调用本地大模型之问道系列(第一问)
java·spring boot·后端·langchain
爱编程的喵1 小时前
深入理解JavaScript原型机制:从Java到JS的面向对象编程之路
java·前端·javascript
on the way 1231 小时前
行为型设计模式之Mediator(中介者)
java·设计模式·中介者模式
保持学习ing1 小时前
Spring注解开发
java·深度学习·spring·框架
techzhi1 小时前
SeaweedFS S3 Spring Boot Starter
java·spring boot·后端