SpringBoot集成Moss查重系统

介绍

本文使用Springboot集成Moss代码查重,方便需要代码查重的后端开发

获得Moss账号

Moss官方网站

首次创建账号需要向指定的邮箱发送邮件,建议使用谷歌邮箱,其中回信中的内容即是关键程序,包含了每个人独一无二的验证信息

回信

将代码信息复制,在服务器端创建文件 moss.pl,直接粘贴进去

Springboot集成Moss系统

本文使用的查重场景主要是单个文件,比如某一个算法题的所有提交。其余的查重具体的命令行在邮件或官网都有详细说明。注意在运行之前需要保证指定的文件夹内有.cpp结尾的文件。

perl /root/moss.pl -l cc /root/cpp/*.cpp

public String runPerl()
    {
        String url = null;

        try
        {
            ProcessBuilder processBuilder = new ProcessBuilder("bash", "-c", "perl /root/moss.pl -l cc /root/cpp/*.cpp");
            Process process = processBuilder.start();

            // 获取外部进程的输入流
            InputStream inputStream = process.getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

            String line;
            while ((line = reader.readLine()) != null)
            {
                System.out.println(line);

                if(line.startsWith("http")) url = line;
            }

            try (InputStream errorStream = process.getErrorStream();
                BufferedReader errorReader = new BufferedReader(new InputStreamReader(errorStream)))
            {
                String errorLine;
                while ((errorLine = errorReader.readLine()) != null)
                {
                    System.err.println(errorLine);
                }
            }

            int exitCode = process.waitFor();
            System.out.println("Exit Code: " + exitCode);
        }
        catch (IOException | InterruptedException e)
        {
            e.printStackTrace();
        }

        return url;
    }

最后会返回一个url,代表moss系统查重的结果,其提供具体的相似度行数对比

检测结果

详情


SpringBoot集成Moss查重系统
https://dreamerland.cn/2023/12/28/springboot/Springboot集成Moss查重系统/
作者
Silva31
发布于
2023年12月28日
许可协议