当前位置: 首页 > 面试题库 >

如何为特定任务创建蚂蚁监听器

曹和正
2023-03-14
问题内容

我们的应用程序中有大约80个罐子。所有这些都是使用ant中的javac任务和jar任务创建的。

我想介绍一下findbug检查。一种选择是创建单个findbug check ant项目。它具有所有jars,其中定义了所有源路径。这可行-
需要大量空间。分析结果也不是很直接。首先有成千上万的警告。

我正在考虑的一种选择是在javac任务ant上使用特殊的侦听器运行ant,提取源和类的位置,并使用源和类文件信息调用findbug任务。任何其他方式都可以将findbug引入大型项目。


问题答案:

调整了taskFinished()…适合我的用法。

public class JavacListener implements BuildListener

     public void taskFinished(BuildEvent be) {

            if ( be.getTask() instanceof UnknownElement ) {
                UnknownElement ue= (UnknownElement) be.getTask();
                ue.maybeConfigure();

                if ( ue.getTask() instanceof Javac ) {
                Javac task = (Javac)ue.getTask();
                    final Path sourcepath = task.getSrcdir();
                    FindBugsTask fbtask = new FindBugsTask();
                    System.out.println ("Trying FindBugs");
                    fbtask.setSourcePath(sourcepath);
                    fbtask.setAuxClasspath(task.getClasspath());
                    Path destPath = new Path( task.getProject() );
                    destPath.setPath(task.getDestdir().getAbsolutePath());
                    fbtask.setAuxAnalyzepath(destPath);
                    fbtask.setOutputFile(getFileName(task.getProject()));
                    fbtask.setProject(task.getProject());

                    fbtask.setHome(new File("C:\\apps\\findbugs-1.3.0"));
                    fbtask.execute();
                }

            } else {
                System.out.println(be.getTask().getClass().getName());
                System.out.println(be.getTask().getTaskName());
            }
        }
..


 类似资料:
  • 环境: IntelliJ IDEA 2016.3.1构建#IU-163.9166.29,构建于2016年12月9日JRE:1.8.0_112-release-408-b2 x86_64 JVM:OpenJDK 64位服务器虚拟机JetBrains s.r.o Mac OS 10.12.2 我在IntelliJ中安装了Ant支持插件,正在执行一个构建。xml脚本(请参见下面的build.xml内容)

  • 2.4 多服务&多监听 2.4.1 在Go代码中声明 假定用户需要创建的Web服务 服务名称 版本号 监听地址 网络类型 读取请求数据超时 写入响应数据超时 myapp1 1.0 0.0.0.0:8080、0.0.0.0:4430 http、https(TLS) 0 0 myapp2 2.0 0.0.0.0:8081、0.0.0.0:4431 http、https(TLS) 0 0 无版本号的服务

  • 假定用户需要创建的Web服务 服务名称 版本号 监听地址 网络类型 读取请求数据超时 写入响应数据超时 myapp1 1.0 0.0.0.0:8080 http 0 0 myapp2 2.0 0.0.0.0:8081 http 0 0 无版本号的服务 func main() { ... app1 := faygo.New("myapp1") app2 := faygo.New("mya

  • 假定用户需要创建的Web服务 服务名称 版本号 监听地址 网络类型 读取请求数据超时 写入响应数据超时 myapp 1.0 0.0.0.0:8080、0.0.0.0:4430、0.0.0.0:4431 http、https(TLS)、https(Let’s Encrypt TLS) 0 0 无版本号的服务 func main() { ... app := faygo.New("myapp"

  • 假定用户需要创建的Web服务 服务名称 版本号 监听地址 网络类型 读取请求数据超时 写入响应数据超时 myapp 1.0 0.0.0.0:8080 http 0 0 无版本号的服务 func main() { ... app := faygo.New("myapp") ... 注:相应的配置文件为config/myapp.ini 含版本号的服务 func main() { ...

  • 我有以下蚂蚁任务: 我正在尝试将其转换为渐变,到目前为止,我有以下任务: 另外,我的sourceset定义如下: 在ant编译中,它工作得很好,但在gradle上,它无法识别源集中声明的任何依赖项。还尝试在我的dependencies{}标记上添加依赖项,但仍然不起作用。到处找都找不到解决方案 提前感谢!