IDEA社区版,真香!

news2024/11/25 1:04:11

IDEA(IntelliJ IDEA)是众多 Java 开发者的首选。

商业版的昂贵

IDEA 商业版(IntelliJ IDEA Ultimate)功能非常强大,能够满足 Java 开发的所有需求,但其高昂的价格……

image-20230926165220789

此时只能感叹,不是不想用正版,而是正版用不起!

破解版的弊端

除了购买正版,只能选择破解版了。

网上有非常多的破解教程,每个版本都会跟进,只要勤加动手,总是能破解的。

相信这是大多数开发者的选择,本人很长一段时间也是这样做的,但它有以下几个缺点:

  • BUG 频发。

    由于是破解版,总会有一些莫名其妙的 BUG。

  • 不能升级版本。

    如果升级版本需要重新破解,比较麻烦,且成功的可能性未知。

  • 不能稳定使用。

    由于是破解版,随时可能遭遇官方的封杀,这样就不能用了,只能寻求其他破解之法。

所以,破解版虽然能够白嫖,但白嫖的代价可不低,特别是在工作场景中,工具的不稳定是会影响工作效率的,甚至是工作的心情。

社区版的真香

在经历了破解版的种种弊端后,我决定尝试下社区版。

之前白嫖商业版习惯了,从来没有关注过社区版,这次尝试之后,只能感叹,真香

优点

社区版有两大显而易见的优点:

  • 免费。

    相较于商业版高昂的价格,社区版的免费无疑是最大的优点。

  • 正版。

    社区版由于是免费的,可以直接使用正版,省去了破解的麻烦,也规避了破解的所有缺点。

缺点

当然了,社区版的缺点也是有的:

  • 功能较少。

    社区版只提供了最基本的 Java 开发相关功能,商业版中的 Web 开发数据库管理特色功能都是没有的。

    个人觉得这不是问题,因为 Web 开发数据库管理都是有专业免费的工具可以实现的,那些特色功能在 Java 开发中也不是必需的。

  • 性能较弱。

    社区版的维护是没有商业版频繁的,所以性能和响应速度这些肯定无法与商业版相比。

    在一段时间的使用下来,这点性能和响应速度的减弱是完全可以接受的,而且性能较弱也意味着占用的内存较少,对于 IDEA 这个”内存大户”甚至可以归为优点。

使用

在了解了社区版的优缺点后,就该介绍社区版的使用了。

首先声明,社区版的使用逻辑与商业版没有任何区别

所以,对于熟悉商业版的开发者来说,社区版是没有学习成本的。

功能

这里只介绍社区版相较于商业版不能直接使用的功能。

社区版自带的功能与商业版一致,就不赘述了。

Lombok

与商业版不同,社区版是没有默认安装 Lombok 插件的,所以不能直接使用 Lombok 的功能,需要先安装插件:

image-20230926174050291

安装插件后,Lombok 的功能与商业版一致,这里就不详细介绍了。

Docker

与商业版不同,社区版是没有默认安装 Docker 插件的,所以不能直接使用 Docker 的功能,需要先安装插件:

image-20230926174321267

如果项目中需要使用 Dockerfile 等 Docker 的功能,可以安装此插件实现。

Tomcat

对于非 Spring Boot 项目,项目的运行需要依赖服务器,常用的服务器 Tomcat 社区版是没有自带功能的,需要先安装插件:

image-20230927094745680

然后进行如下步骤配置 Tomcat:

  1. 配置服务。

    image-20230927095215171

  2. 添加 Tomcat。

    image-20230927095417045

  3. 配置 Tomcat。

    image-20230927112917738

这样,就可以使用 Tomcat 启动服务了。

打war包

IDEA 社区版不能像商业版那样可以通过工件打 war 包。

如果需要打 war 包,可以使用 Ant 进行打包,具体步骤如下:

  1. 创建 build.xml

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!-- WARNING: Eclipse auto-generated file.
                  Any modifications will be overwritten.
                  To include a user specific buildfile here, simply create one in the same
                  directory with the processing instruction <?eclipse.ant.import?>
                  as the first entry and export the buildfile again. -->
    <project basedir="." default="packWar" name="TARGET">
        <property environment="env"/>
        <property name="debuglevel" value="source,lines,vars"/>
        <property name="target" value="1.8"/>
        <property name="source" value="1.8"/>
    	
    	<!--自定义部分-->
    	
        <property name="build" value="${basedir}/build"/>
        <property name="build.class" value="${basedir}/build/classes"/>
        <property name="src" value="${basedir}/src"/>
        <property name="web" value="${basedir}/WebContent"/>
        <property name="project_jar_path" value="${web}/WEB-INF/lib"/>
    	<property name="jre_jar_path" value="D:\Environment\jdk\jdk1.8.0_202\jre\lib"/>  
    	<property name="jre_jar_ext_path" value="D:\Environment\jdk\jdk1.8.0_202\jre\lib\ext"/>  
    	<property name="tomcat_jar_path" value="D:\Environment\apache-tomcat-8.5.79\lib"/>  
        <path id="project_jar">
    		<fileset dir="${project_jar_path}">
                <include name="*.jar"/>
            </fileset>
        </path>
        <path id="jre_jar">
    		<fileset dir="${jre_jar_path}">
                <include name="*.jar"/>
            </fileset>
    	</path>
    	<path id="jre_ext_jar">
    		<fileset dir="${jre_jar_ext_path}">
                <include name="*.jar"/>
            </fileset>
    	</path>
        <path id="tomcat_jar">
    		<fileset dir="${tomcat_jar_path}">
                <include name="*.jar"/>
            </fileset>
        </path>
        <path id="TARGET.classpath">
            <pathelement location="build/classes"/>
            <path refid="project_jar"/>
            <path refid="jre_jar"/>
            <path refid="jre_ext_jar"/>
    		<path refid="tomcat_jar"/>
        </path>
    	<target name="clean">
    		<echo message="--------------------开始清理旧的编译文件---------------------------"/>
            <delete dir="build/classes"/>
    		<delete file="${basedir}/build/${ant.project.name}.war"/>
        </target>
        <target name="init">
    		<echo message="---------------------开始拷贝资源文件-----------------------------"/>
            <mkdir dir="build/classes"/>
            <copy includeemptydirs="false" todir="build/classes">
                <fileset dir="src">
                    <exclude name="**/*.java"/>
                </fileset>
            </copy>
            <copy includeemptydirs="false" todir="build/classes">
                <fileset dir="resources">
                    <exclude name="**/*.java"/>
                </fileset>
            </copy>
    		<copy includeemptydirs="false" todir="${project_jar_path}">
                <fileset dir="${tomcat_jar_path}">
                    <include name="*.jar"/>
                </fileset>
            </copy>
        </target>
        <target name="build">
    		<echo message="-----------------------开始编译JAVA文件-----------------------------"/>
            <echo message="${ant.project.name}: ${ant.file}"/>
            <javac debug="true" debuglevel="${debuglevel}" destdir="build/classes" includeantruntime="false" source="${source}" target="${target}">
                <src path="src"/>
                <src path="resources"/>
                <classpath refid="TARGET.classpath"/>
            </javac>
        </target>
    	<target name="packWar">
            <echo message="-----------------------开始构建war包-----------------------------"/>
            <war destfile="${basedir}/build/${ant.project.name}.war" webxml="${web}/WEB-INF/web.xml">
                <fileset dir="${web}"/>
                <classes dir="${build.class}"/>
            </war>
        </target>
    </project>
    
    
  2. 创建 build.xml 后会出现 Ant 的控制窗口。

    image-20230928174348640

  3. 选择 packWar ,点击鼠标右键选择属性

    image-20230928174422943

  4. 选择执行,在 Ant 命令行 中输入如果命令:

    clean init build packWar
    

    点击确定保存配置。

  5. 需要打 war 包时,双击 packWar 即可进行打包。

    按照 build.xml 的配置:

    • 打的 war 包会放在 build 目录下。
    • 编译后的文件会放在 build/classess 目录下。

    如果需要调整,可以修改 build.xml 中的配置。

如此,IDEA 社区版已经能满足日常的 Java 开发工作了,免费使用正版的 IDEA,只能说一句,真香

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习在windows环境下定时执行python脚本的方法

学习在windows环境下定时执行python脚本的方法 一、准备Python脚本二、创建定时任务1、打开【任务计划程序】2、打开【创建任务】窗口3、创建任务一一常规4、创建任务一一触发器5、创建任务一一操作程序或脚本&#xff1a;添加参数&#xff1a;起始于&#xff1a; 7、创建任务一…

CAD/CAM/CAE SDK 国庆大放送:Eyeshot 2023.X Crack

创建、探索或编辑 3D CAD 数据 开发您自己的&#xff08;独立的&#xff09;CAD/CAM/CAE 应用程序,请选择合适自己的版本&#xff1a;&#xff1a;关注我&#xff0c;得知全球最新最全的组件动态&#xff0c;这个sdk我们会一直持续更新到最新&#xff0c;跟着我们&#xff0c;你…

GAT学习

文章目录 GAT注意力机制的定义图注意力层多头注意力机制GATConv层中forward函数步骤解析&#xff1a;1. 计算wh。wh:带权特征向量2. 计算注意力分数e3. 激活注意力分数e4. 由边的索引获取邻接矩阵5. 获得注意力分数矩阵。 attention[i][j]表示i j之间的注意力分数torch.where详…

苹果发布iOS 17.1首个beta版本,新增了这几个新功能!

苹果今日向iPhone/iPad用户推送了iOS/iPadOS17.1开发者预览版Beta版更新&#xff0c;iOS/iPadOS17.1Beta内部版本号为21B5045h。 iOS/iPadOS17.1Beta更新内容如下&#xff1a; 一&#xff1a;Apple Music“已喜爱”分类 用户可以在 iOS 17.1 的 Apple Music 中收藏歌曲、专辑…

优化邮箱体验!推荐替代方案:提升企业效率的选择

近年来&#xff0c;随着互联网技术的快速发展&#xff0c;电子邮件成为了企业沟通和协作的重要工具。而作为国内知名的企业邮箱服务提供商&#xff0c;网易企业邮箱凭借其稳定性、安全性和易用性&#xff0c;受到了广大企业的青睐。然而&#xff0c;随着市场竞争的加剧&#xf…

26532-2011 地理标志产品 慈溪杨梅

声明 本文是学习GB-T 26532-2011 地理标志产品 慈溪杨梅. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了慈溪杨梅的术语和定义、地理标志产品保护范围、要求、试验方法、检验规则及标志、 标签、包装、运输和贮存。 本标准适用…

基于java的银行风险预警系统的研究与实现

文章目录 导文摘要:前言:绪论:相关技术与方法介绍:系统分析:系统设计:系统实现:系统测试:总结与展望:导文 基于java的银行风险预警系统的研究与实现 本文基于Java开发了一款银行风险预警系统,旨在帮助银行有效管理风险并提前预警潜在风险。下面将对文中的各个部分进行…

微信小程序 课程签到系统

目录 前端页面展示主页面我的课程个人中心评论功能签到功能课程绑定超级管理员页面 前端文件结构文件结构app.json前端架构和开发工具前端项目地址 后端后端架构后端项目地址 注意事项 前端页面展示 主页面 登录页面&#xff1a; 账号是&#xff1a;用户名或者手机号 密码是&a…

【Elasticsearch】聚合查询(四)

Elasticsearch&#xff08;简称为ES&#xff09;是一个基于Lucene的开源搜索和分析引擎&#xff0c;提供了丰富的聚合查询功能。聚合查询指的是在搜索结果上执行分组、汇总和统计等操作&#xff0c;以便从大量数据中提取有用的信息和洞察。 这篇文章主要介绍检索相关的操作&…

freertos的任务调度器的启动函数分析(根据源码使用)

volatile uint8_t * const pucFirstUserPriorityRegister ( uint8_t * ) ( portNVIC_IP_REGISTERS_OFFSET_16 portFIRST_USER_INTERRUPT_NUMBER ); 通过宏pucFirstUserPriorityRegister0xE000E400&#xff08;根据宏名字&#xff0c;这是NVIC寄存器地址&#xff09; 查手册…

26523-2022 精制硫酸钴 随笔练习

声明 本文是学习GB-T 26523-2022 精制硫酸钴. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了精制硫酸钴的要求、试验方法、检验规则、标志、标签、包装、运输和贮存。 本文件适用于精制硫酸钴。 注&#xff1a;该产品主要用于…

【面试题】有了Docker为啥还需要k8s?

个人主页&#xff1a;金鳞踏雨 个人简介&#xff1a;大家好&#xff0c;我是金鳞&#xff0c;一个初出茅庐的Java小白 目前状况&#xff1a;22届普通本科毕业生&#xff0c;几经波折了&#xff0c;现在任职于一家国内大型知名日化公司&#xff0c;从事Java开发工作 我的博客&am…

【python】基础语法

文章目录 元组列表字典集合推导式函数错误和异常处理文件和操作系统 元组 元组是一个固定长度&#xff0c;不可改变的Python序列对象。创建元组的最简单方式&#xff0c;是用逗号分隔一列值。 创建 2. 元组不可修改的解释 对于元组对象不可变的说明&#xff0c;通俗一点就是…

自学成为一名黑客

前言&#xff1a;想自学网络安全&#xff08;黑客技术&#xff09;首先你得了解什么是网络安全&#xff01;什么是黑客 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安…

【操作系统】调度算法的评价指标和三种调度算法

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 操作系统 一、调度算法的评价指标1.1 CPU利…

使用cpolar端口映射的方法轻松实现在Linux环境下SVN服务器的搭建与公网访问

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

深入剖析ThreadLocal使用场景、实现原理、设计思想

前言 ThreadLocal可以用来存储线程的本地数据&#xff0c;做到线程数据的隔离 ThreadLocal的使用不当可能会导致内存泄漏&#xff0c;排查内存泄漏的问题&#xff0c;不仅需要熟悉JVM、利用好各种分析工具还耗费人工 如果能明白其原理并正确使用&#xff0c;就不会导致各种意…

【Verilog 教程】6.2Verilog任务

关键词&#xff1a;任务 任务与函数的区别 和函数一样&#xff0c;任务&#xff08;task&#xff09;可以用来描述共同的代码段&#xff0c;并在模块内任意位置被调用&#xff0c;让代码更加的直观易读。函数一般用于组合逻辑的各种转换和计算&#xff0c;而任务更像一个过程&a…

win10搭建Selenium环境+java+IDEA(2)

接着上一个搭建环境开始叙述&#xff1a;win10系统x64安装java环境以及搭建自动化测试环境_荟K的博客-CSDN博客 上一步结尾的浏览器驱动&#xff0c;本人后面改到了谷歌浏览器.exe文件夹下&#xff1a; 这里需要注意&#xff0c;这个新路径要加载到系统环境变量中。 上一步下…

2023-9-28 JZ26 树的子结构

题目链接&#xff1a;树的子结构 import java.util.*; /** public class TreeNode {int val 0;TreeNode left null;TreeNode right null;public TreeNode(int val) {this.val val;}} */ public class Solution {public boolean HasSubtree(TreeNode root1,TreeNode root2) …