编译自定义 OpenDaylight 时出错 API
Error when compiling custom OpenDaylight API
我正在尝试根据 https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Startup_Project_Archetype
上的 API 教程创建自定义 API
工具:OpenDaylight Lithium、Eclipse、Maven 3.3.9
我可以编译 api
中的文件夹,但不能编译 impl
(FlowImpl.java
) 中的文件夹。
这是错误信息:
[INFO] Starting audit...
/home/shaoxu/Desktop/distribution-karaf-0.3.3-Lithium-SR3/flow/impl/src/main/java/org/opendaylight/flow/impl/FlowImpl.java:1: Line does not match expected header line of '^/[*]+$'.
Audit done.
[INFO] There is 1 error reported by Checkstyle 6.2 with check-license.xml ruleset.
[ERROR] src/main/java/org/opendaylight/flow/impl/FlowImpl.java[1] (header) RegexpHeader: Line does not match expected header line of '^/[*]+$'.
Eclipse 中没有错误信息。
这是源代码:
package org.opendaylight.flow.impl;
import java.util.concurrent.Future;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.flow.rev150105.FlowService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.flow.rev150105.FlowPathInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.flow.rev150105.FlowPathOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.flow.rev150105.FlowPathOutputBuilder;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
public class FlowImpl implements FlowService {
@Override
public Future<RpcResult<FlowPathOutput>> flowPath(FlowPathInput input) {
FlowPathOutputBuilder flowBuilder = new FlowPathOutputBuilder();
flowBuilder.setPath(input.getNodes());
return RpcResultBuilder.success(flowBuilder.build()).buildFuture();
}
}
错误是什么?
您遇到的错误是由 OpenDaylight 中每个文件开头的 copyright/license header 的强制格式引起的:
/*
* Copyright (c) 2016 ... and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
如果您使用原型,这个 header 应该已经为您生成了。有两种解决问题的方法:如上添加许可证 header(如果您对许可证满意),或者禁用许可证检查——如果您想执行后者,请编辑您的问题并添加您用于 impl
的 POM,因此我可以解释如何进行。
您提到您正在使用锂,我强烈建议您切换到铍甚至硼以进行新的开发。维基页面目前主要是 up-to-date Beryllium。
在我的 Beryllium 中,我通常会在 运行 我的构建时跳过 checkstyle 测试。将 -Dcheckstyle.skip=true
参数添加到您的命令以执行 Maven 构建。
我正在尝试根据 https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:Startup_Project_Archetype
上的 API 教程创建自定义 API工具:OpenDaylight Lithium、Eclipse、Maven 3.3.9
我可以编译 api
中的文件夹,但不能编译 impl
(FlowImpl.java
) 中的文件夹。
这是错误信息:
[INFO] Starting audit...
/home/shaoxu/Desktop/distribution-karaf-0.3.3-Lithium-SR3/flow/impl/src/main/java/org/opendaylight/flow/impl/FlowImpl.java:1: Line does not match expected header line of '^/[*]+$'.
Audit done.
[INFO] There is 1 error reported by Checkstyle 6.2 with check-license.xml ruleset.
[ERROR] src/main/java/org/opendaylight/flow/impl/FlowImpl.java[1] (header) RegexpHeader: Line does not match expected header line of '^/[*]+$'.
Eclipse 中没有错误信息。
这是源代码:
package org.opendaylight.flow.impl;
import java.util.concurrent.Future;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.flow.rev150105.FlowService;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.flow.rev150105.FlowPathInput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.flow.rev150105.FlowPathOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.flow.rev150105.FlowPathOutputBuilder;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
public class FlowImpl implements FlowService {
@Override
public Future<RpcResult<FlowPathOutput>> flowPath(FlowPathInput input) {
FlowPathOutputBuilder flowBuilder = new FlowPathOutputBuilder();
flowBuilder.setPath(input.getNodes());
return RpcResultBuilder.success(flowBuilder.build()).buildFuture();
}
}
错误是什么?
您遇到的错误是由 OpenDaylight 中每个文件开头的 copyright/license header 的强制格式引起的:
/*
* Copyright (c) 2016 ... and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
如果您使用原型,这个 header 应该已经为您生成了。有两种解决问题的方法:如上添加许可证 header(如果您对许可证满意),或者禁用许可证检查——如果您想执行后者,请编辑您的问题并添加您用于 impl
的 POM,因此我可以解释如何进行。
您提到您正在使用锂,我强烈建议您切换到铍甚至硼以进行新的开发。维基页面目前主要是 up-to-date Beryllium。
在我的 Beryllium 中,我通常会在 运行 我的构建时跳过 checkstyle 测试。将 -Dcheckstyle.skip=true
参数添加到您的命令以执行 Maven 构建。