Как использовать ложку для компиляции проектов Hadoop
Я новый пользователь Spoon и Astor. В последнее время я использую Astor( https://github.com/SpoonLabs/astor), чтобы сделать некоторые автоматические исправления ошибок.
Сначала Astor будет использовать библиотеку Spoon для компиляции и анализа исходного кода проекта. Теперь я могу использовать Spoon для успешного синтеза небольших проектов, но он не может успешно скомпилировать подмодуль Hadoop (например, hadoop/hadoop-common-project/hadoop-auth).
Я обнаружил, что у Spoon есть проблемы с компиляцией модели. Кажется, что Spoon НЕ может получить объявленный тип из файла package-info.java. Кто-нибудь знает, как решить эту проблему? Большое спасибо!
информация журнала указана ниже:
2017-08-30 17:59:15,128 INFO main - building model: /Users/someone/git/astor/./outputMutation/AstorMain-11859hadp//src//default, compliance level: 8
2017-08-30 17:59:15,136 INFO main - Classpath for building SpoonModel [too long to list all of them]
2017-08-30 17:59:16,885 ERROR main - Problem compiling the model with compliance level 8
2017-08-30 17:59:16,885 ERROR main - inconsistent compilation unit: '/Users/someone/git/astor/outputMutation/AstorMain-11859hadp/src/default/org/apache/hadoop/security/authentication/server/package-info.java': declared types are []
2017-08-30 17:59:16,885 INFO main - building model: /Users/someone/git/astor/./outputMutation/AstorMain-11859hadp//src//default, compliance level: 7
2017-08-30 17:59:16,887 INFO main - Classpath for building SpoonModel [too long to list all of them]
Exception in thread "main" java.lang.RuntimeException: inconsistent compilation unit: '/Users/someone/git/astor/outputMutation/AstorMain-11859hadp/src/default/org/apache/hadoop/security/authentication/server/package-info.java': declared types are []
at spoon.support.reflect.cu.CompilationUnitImpl.getMainType(CompilationUnitImpl.java:68)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.generateProcessedSourceFilesUsingCUs(JDTBasedSpoonCompiler.java:498)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.generateProcessedSourceFiles(JDTBasedSpoonCompiler.java:203)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.generateProcessedSourceFiles(JDTBasedSpoonCompiler.java:192)
at fr.inria.astor.core.manipulation.MutationSupporter.buildModel(MutationSupporter.java:90)
at fr.inria.astor.core.manipulation.MutationSupporter.buildModel(MutationSupporter.java:71)
at fr.inria.astor.approaches.jgenprog.JGenProg.initModel(JGenProg.java:152)
at fr.inria.astor.approaches.jgenprog.JGenProg.createInitialPopulation(JGenProg.java:62)
at fr.inria.main.evolution.AstorMain.createEngine(AstorMain.java:97)
at fr.inria.main.evolution.AstorMain.run(AstorMain.java:142)
at fr.inria.main.AbstractMain.executeExample(AbstractMain.java:708)
at fr.inria.main.evolution.AstorMain.execute(AstorMain.java:209)
at fr.inria.main.evolution.AstorMain.main(AstorMain.java:199)
at fr.inria.main.evolution.MainjGenProg.main(MainjGenProg.java:14)
Файл package-info.java:
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Provides the server-side framework for authentication.
*/
@InterfaceAudience.LimitedPrivate({ "HBase", "HDFS", "MapReduce" })
@InterfaceStability.Evolving
package org.apache.hadoop.security.authentication.server;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.classification.InterfaceStability;
1 ответ
Я не думаю, что stackru - подходящее место для вашей проблемы: это либо ошибка в Spoon, либо в Astor. Я предлагаю вам сначала открыть вопрос в Astor ( https://github.com/SpoonLabs/astor/issues), и мы посмотрим, связано ли это с Astor или Spoon. Если вы можете, при создании проблемы предоставьте полный аргумент командной строки, который вы использовали с Astor, чтобы я мог легко воспроизвести вашу ошибку.