gradle task 스크립트 삭제 로그

2208 단어

gradle task 스크립트 삭제 로그


gradle을 배우고 있기 때문에 코드를 직접 올리는 것은 많지 않다build.gradle에 다음task를 넣고 안드로이드스튜디오Terminal에서 실행하면 윈도우즈 입력gradlew -q dl,macgradle -q dl,조금 있으면 모든Log.의 코드가 삭제된 것을 발견할 수 있습니다.
      task dl << {

      def rootPath = project.projectDir.absolutePath;

      def files = new File(rootPath + "/src");

      println files.getAbsolutePath()

      deleteLog(files)
    }

    void deleteLog(File listFiles) {
      if (listFiles != null) {
        listFiles.eachFile {File file ->
          if (file != null) {
            if (file.isFile()) {
              if (file.canRead() && file.name.endsWith(LogConstant.suffix)) {
                println file.getAbsolutePath()

                deleteFileLog(file);
              }
            } else if (file.isDirectory()) {
              deleteLog(file);
            }
          }
        }
      }
    }

--
    void deleteFileLog(File javafile) {
      def endFlag = 0;
      File ftmp = file(javafile.getAbsolutePath() + ".tmp");
      def printWriter = ftmp.newPrintWriter(LogConstant.charset);
      def reader = javafile.newReader(LogConstant.charset);
      def tmpline = null;
      String line;
      while ((line = reader.readLine()) != null) {
        if (line != null) {
          tmpline = line.trim();
          if (tmpline.startsWith(LogConstant.head) || endFlag == 1) {

            if (tmpline.endsWith(LogConstant.tail_end)) {
              endFlag = 0;
              printWriter.write(";
") continue } else { endFlag = 1; continue } } else { printWriter.write(line + "
"); } } } reader.close(); printWriter.flush(); printWriter.close(); javafile.delete(); ftmp.renameTo(javafile.getAbsolutePath()); }

--
    task LogConstant {
      ext.head = 'Log.'
      ext.tail_end = ');'
      ext.suffix = '.java'
      ext.charset = "utf-8"
    }

좋은 웹페이지 즐겨찾기