让XBee-API在Netbeans下编译和运行

时间:2017-07-03 09:57:42

标签: java api maven netbeans xbee

问题是如何在Netbeans中安装XBee-API以用于其他项目?

答案应该是从github简单地下载maven项目并导入到Netbeans中。十分简单。现实并非如此简单。作为Java noobie,我花了一天的时间让Xbee API在Netbeans下编译和运行。

来自Github的XBee-API版本0.9.1是一个Maven项目,它直接导入Netbeans,但如果没有进一步的工作就无法编译。对于初始测试,我使用通过USB /串行电缆连接到我的win10 PC的Digi SDK套件。我正在运行XBee S2C Digimesh设备。最终我使用XBee_API的原因是通过I2C与Raspberry Pi 3B进行通信。

尝试运行的第一个XBee-API类是Test文件夹中的“OpenCloseConnectionsTest”。这提供了非常详细的调试信息,有助于排除故障。如果这将运行,那么其他一切也应该。

第一个错误是因为XBee-API POM文件没有包含版本标记。我的POM现在看起来像:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>                                      
</configuration>
</plugin>

接下来我错过了RxTx文件。在我的win10安装中,我在以下位置缺少以下文件:

...\Program Files\Java\jkd1.6.0_01\jre\bin\rxtxSerial.dll

...\Program Files\Java\jdk1.6.0_01\jre\lib\ext\RXTXcomm.jar

我是从here下载的。一旦我将这些文件放在这些位置,Netbeans就会在没有进一步操作/配置的情况下找到它们。我仍然有一个警告,因为这些文件不是完全相同的版本。

最后,我需要编辑源代码来设置通信端口ID。就我而言,XBee是在“COM5”上。

我找不到任何具有上述所有信息的单一来源。我发现的很多信息已经过时,有些信息是完全错误的。希望这篇文章能够帮助其他人。

1 个答案:

答案 0 :(得分:0)

好的,所以我正在回答我的问题。因此,为了获得最新的0.9.2版XBee-API,我需要将一个项目从Maven Central Repository安装到Netbeans中。我发现了几个帖子指向我here。 我根本没有发现它有用。答案可能在某处,但它假设我对Maven和Ant有一定程度的了解,所以我进行了实验。我在Netbeans中创建了一个新的Maven项目,然后复制了我在Maven Central中找到的XBee-API POM文件的内容,并粘贴了该文件以替换我创建的新Maven项目中的默认POM文件的内容。

我的理解是,Maven将根据POM文件下载所需的所有文件,但它没有。大多数文件都已下载,但并非全部。我收到了以下警告:

    Some problems were encountered while building the effective model for com.rapplogic:xbee-api:jar:0.9.2
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-gpg-plugin is missing. @ line 60, column 21
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 51, column 21
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-source-plugin is missing. @ line 86, column 21
'build.plugins.plugin.version' for org.apache.maven.plugins:maven-javadoc-plugin is missing. @ line 99, column 21

还有:

Failed to execute goal pl.project13.maven:git-commit-id-plugin:2.2.1:revision (get-the-git-infos) on project xbee-api: The plugin pl.project13.maven:git-commit-id-plugin:2.2.1 requires Maven version [3.1.1,) -> [Help 1]

这对任何了解Maven的人都有意义,但那不是我。看起来我需要升级只有几个月的Maven,因为这是我使用Java的时间。

我发现我已经在运行最新的Maven ver 3.5.0。错误消息说我需要3.1.1所以升级Maven是不可能的并且降级回3.1.1似乎是一个坏主意。是时候改变策略了,看看使用更高版本的插件。

我发现其他人遇到此问题herehere但没有解决方法。我发现此响应here表明问题是没有为POM中的每个插件指定版本。所以看起来Apache已经改变了规则(要求在POM中指定版本)但是还没有提供更新POM的工具。这似乎是可以在Maven Central中扫描和纠正的内容。我正在运行的POM只有5个月的历史,但它没有人工干预就无法建立。

要修复版本问题,我必须在每个插件中搜索Maven Central以获取最新/正确的版本号并修改POM。这有多糟糕!!这个过程清除了除了一个致命的错误。我现在遇到问题here

中描述的僵局

我要追求的解决方案是使用Github的旧版XBee-API。这给了我源代码,它构建没有问题。我计划修改此代码以使用I2C而不是RS232。还有套接字服务器的beta代码。