首页 > 其他分享 >我的世界插件开发【IDEA自动热重载】

我的世界插件开发【IDEA自动热重载】

时间:2024-02-29 22:12:35浏览次数:19  
标签:插件 java Script args IDEA maven 重载

最近,在研究我的世界插件开发,遇到的最大问题就是构建完成之后需要手动重载插件很是麻烦,所以就利用Maven插件和自己写的一个我的世界插件进行自动重载。

利用Maven的exec-maven-plugin和maven-jar-plugin执行命令和自定义jar包输出路径。

pom.xml

  <build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>3.2.0</version>
            <executions>
                <execution>
                    <id>unload</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>java</goal>
                    </goals>
                    <configuration>
                        <mainClass>Script</mainClass>
                        <arguments>
                            <argument>8888</argument>
                            <argument>unload</argument>
                            <argument>PluginName</argument>
                        </arguments>
                    </configuration>
                </execution>
                <execution>
                    <id>load</id>
                    <phase>package</phase>
                    <goals>
                        <goal>java</goal>
                    </goals>
                    <configuration>
                        <mainClass>Script</mainClass>
                        <arguments>
                            <argument>8888</argument>
                            <argument>load</argument>
                            <argument>PluginName</argument>
                        </arguments>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <!-- jar包输出路径 -->
                <outputDirectory>F:\Game\Minecraft\plugins</outputDirectory>
                <excludes>
                    <exclude>**/*.properties</exclude>
                    <exclude>**/*.xml</exclude>
                    <exclude>static/**</exclude>
                    <exclude>templates/**</exclude>
                    <exclude>**/Script.class</exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

Script.java

import java.io.IOException;
import java.net.Socket;

public class Script {
    public static void main(String[] args) {
        try (Socket socket = new Socket("localhost", Integer.parseInt(args[0]))) {
            socket.getOutputStream().write(("develop " + args[1] + " " + args[2]).getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

重载插件

GitHub项目:Develop

也可以使用 Plugman 改一下 Script.java。

标签:插件,java,Script,args,IDEA,maven,重载
From: https://www.cnblogs.com/liert/p/18045680

相关文章

  • JAVA基础:引用类型参数传递的相关案例(数组的传递) 方法重载 return关键字
    packagecom.itheima.Method;publicclassMethod6{publicstaticvoidmain(String[]args){int[]arrs=newint[]{2,5,6,4};printArray(arrs);}publicstaticvoidprintArray(int[]arr){if(arr!=null){System.out......
  • 好用的zsh插件,打造好用的命令行
    zsh大家都知道,是一个非常好用的命令行shell。我本人也用zsh好几年了,但是却没有怎么安装过他的插件。直到最近用上那些好用的插件之后,我才有种相见恨晚的感觉。zsh支持的所有插件列表:zsh插件zsh-syntax-highlighting这个插件可以为我们输入的命令提供语法高亮,如果是不支持的......
  • Vue中组件和插件有什么区别?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助一、组件是什么回顾以前对组件的定义:组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在Vue中每一个.vue文件都可以视为一个组件组件的优势降低整个系统的耦合度,在保持接口不变的......
  • Pmd-ida 插件安装使用
    Pmd-ida代码工程:https://github.com/ybroeker/pmd-ideaPmd-idea主页:https://plugins.jetbrains.com/plugin/15412-pmd-idea 路径:file->setting->plugins->Marketplace,国内在线安装下载吧不到安装包,到https://github.com/ybroeker/pmd-idea 在release界面下载和idea版本适配......
  • IDEA 其它版本下载
    1.IDEA其它版本下载指引网址: https://www.jetbrains.com.cn/idea/download/other.html2.下载问题下载哪个版本?win+R打开命令窗口输入 systeminfo3.小科普WindowsARM64和Windowsx64是Windows操作系统的不同版本,它们针对不同的处理器架构设计而成。WindowsAR......
  • Chrome浏览器插件安装几种方式
    1、将Edge中的扩展安装到Chrome查看Edge扩展安装目录edge://extensions/打开Edge浏览器插件位置:C:\Users\Administrator\AppData\Local\Microsoft\Edge\UserData\Default\Extensions查看Chrome的扩展安装目录chrome://extensions/将该目录下的文件,复制到Chrome的目录下:C:\Use......
  • kettle从入门到精通 第四十九课 ETL之kettle 自定义插件01
    1、kettle插件是什么kettle本身有足够多的转换或者job步骤,但是依然不能覆盖所有的业务场景,所以Kettle自定义插件在有些独特的业务场景可以大显身手。Kettle的插件架构使得我们可以不用修改Kettle本身代码,通过一些独立的代码就可以扩展Kettle的功能。这些独立的代码称为插件。Ke......
  • 使用IDEA创建父子级项目
    我们这里采用IDEA创建springboot子父级项目演示,同时通过使用SpringInitializer快速搭建springboot工程。一、创建父工程1、使用SpringInitializer快速搭建新建项目删除没用的src文件夹2、修改工程配置信息将build删除,packing改为pom<?xmlversion="1.0"encoding=......
  • 假期vue学习笔记04 插件
    exportdefault{  install(Vue){    //全局过滤器    Vue.filter('mySclice',function(value){      returnvalue.slice(0,4)    }),    //定义全局指令    Vue.directive('fbind',{      bind(......
  • IDEA更新本地代码丢失,IDEA使用Update Project更新本地代码丢失
    问题原因提交代码前,IDEA更新Git本地代码丢失,IDEA使用UpdateProject更新Git本地代码丢失,更新代码时执行UpdateProject操作。执行完该操作会发现IDEA没有任何提示,默认覆盖了你本地还未提交的代码,本地呕心沥血写的代码瞬间人间蒸发解决办法LocalHistory(本地历史更改记录)当出现......