【发布时间】:2015-03-21 18:16:20
【问题描述】:
我不懂java。我正在尝试使用 eclipse 为 Bamboo 编译一个插件。我得到java编译错误。请帮助我识别/解决此问题。
JmeterResultsWriter.java 长这样
##########################JmeterResultsWriter.java ##################
package com.atlassian.bamboo.plugins.jmeter_aggregator.index;
import java.util.Map;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.NumberTools;
import org.apache.lucene.document.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.jetbrains.annotations.NotNull;
import com.atlassian.bamboo.index.CustomPostBuildIndexWriter;
import com.atlassian.bamboo.plugins.jmeter_aggregator.builder.JmeterBuildDataHelper;
import com.atlassian.bamboo.plugins.jmeter_aggregator.Sampler;
import com.atlassian.bamboo.resultsummary.BuildResultsSummary;
import com.thoughtworks.xstream.XStream;
public class JmeterResultsWriter implements CustomPostBuildIndexWriter
{
public static final String JMETER_AGGREGATOR_NINETY_PERECENT = "jmeter.aggregator.ninety.percent";
public static final String JMETER_AGGREGATOR_MEDIAN = "jmeter.aggregator.median";
public static final String JMETER_AGGREGATOR_THROUGHPUT = "jmeter.aggregator.throughput";
@SuppressWarnings("unchecked")
public void updateIndexDocument(@NotNull Document doc, @NotNull BuildResultsSummary summary)
{
Map<String, String> data = summary.getCustomBuildData();
String xmlData = data.get(JmeterBuildDataHelper.CUSTOM_BUILD_DATA_MAP);
if (xmlData != null)
{
String xmlTotal = data.get(JmeterBuildDataHelper.CUSTOM_BUILD_DATA_TOTAL);
XStream xstream = new XStream();
Sampler sampler = (Sampler) xstream.fromXML(xmlTotal);
// Store the total and xmldata unindexed.
doc.add(new Field(JmeterBuildDataHelper.CUSTOM_BUILD_DATA_MAP, xmlData, Store.COMPRESS, Index.NO));
doc.add(new Field(JmeterBuildDataHelper.CUSTOM_BUILD_DATA_TOTAL, xmlTotal, Store.COMPRESS,
Index.NO));
}
}
}
################### JmeterResultsReader.java ###################
package com.atlassian.bamboo.plugins.jmeter_aggregator.index;
import java.util.Map;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import com.atlassian.bamboo.index.CustomIndexReader;
import com.atlassian.bamboo.plugins.jmeter_aggregator.builder.JmeterBuildDataHelper;
import com.atlassian.bamboo.resultsummary.BuildResultsSummary;
public class JmeterResultsReader implements CustomIndexReader
{
public void extractFromDocument(Document doc, BuildResultsSummary summary)
{
Map<String, String> results = summary.getCustomBuildData();
Field dataField = doc.getField(JmeterBuildDataHelper.CUSTOM_BUILD_DATA_MAP);
if (dataField != null)
{
results.put(JmeterBuildDataHelper.CUSTOM_BUILD_DATA_MAP, dataField.stringValue());
}
Field totalField = doc.getField(JmeterBuildDataHelper.CUSTOM_BUILD_DATA_TOTAL);
if (totalField != null)
{
results.put(JmeterBuildDataHelper.CUSTOM_BUILD_DATA_TOTAL, totalField.stringValue());
}
}
}
[错误] /C:/Users/twinnarasi/workspace/atlassian-bamboo-jmeter-aggregator/src/main/java/JmeterResultsWriter.java:[7,34] C:\Users\twinnarasi\workspace\atlassian-竹-jmeter-aggregator\src\main\java\JmeterResultsWriter.java:7:找不到符号 [错误] 符号:类 NumberTools [错误] 位置:包 org.apache.lucene.document
错误] /C:/Users/twinnarasi/workspace/atlassian-bamboo-jmeter-aggregator/src/main/java/com/atlassian/bamboo/plugins/jmeter_aggregator/index/JmeterResultsReader.java:[23,40] C:\Users\twinnarasi\workspace\atlassian-bamboo-jmeter-aggregator\src\main\java\com\atlassian\bamboo\plugins\jmeter_aggregator\index\JmeterResultsReader.java:23:不兼容的类型 [错误] 发现:org.apache.lucene.index.IndexableField [错误] 必需:org.apache.lucene.document.Field
【问题讨论】:
-
您正在使用与 Apache Lucene 3.x 配合使用的源代码,但您使用的是 Apache Lucene 4.x。它们不兼容。
-
谢谢。这是有道理的。但是我们将 Lucene 4.x 用于 Bamboo 5.7,我们不能降级到 3.x。最初我们正在尝试编译 JMeter Aggregator 插件(直到 5.5.1 才支持竹子)所以我认为我必须修改 Jmeteraggregator 的 pom.xml 以与 4.x 兼容
-
我觉得不只是pom.xml的问题——这个源码直接导入
org.apache.lucene.document.NumberTools,Lucene 4.x中不存在。