2017-07-03 66 views
0

問題是如何在NetBeans中安裝XBee-API以便與其他項目一起使用?讓XBee-API在Netbeans下編譯並運行

答案應該是簡單地從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在沒有進一步操作/配置的情況下發現它們。我仍然有一個警告,因爲這些文件不是完全相同的版本。

最後,我需要編輯源代碼來設置通信端口號。就我而言,XBee是在「COM5」上。

我找不到任何具有以上所有信息的單一來源。我發現的很多信息都過時了,有些只是錯誤的。希望這篇文章能夠幫助其他人。

+0

這看起來很有幫助。不幸的是,我們需要答案來在這裏提供一個話題。你是否能夠調整這一點,以便提出原始問題,以便在下面的答案中可以通過某些材料回答這個問題? – halfer

+0

好的,這是一個尋找問題的答案,但我調整了它。自寫這篇文章以來,我發現github 0.9.1版本並不是最新版本。最新版本0.9.2在Maven Central Repository上。這個差別對我來說很重要,因爲0.9.2包含一個套接字函數,它允許通過單個通道的多路複用通信。在版本0.9.2之前,該代碼與XBee-API分開。所以現在我必須弄清楚如何從Maven Central導入和創建一個新項目。 – dazz

+0

不幸的是,它仍然不符合我們要求的問答格式。回答如下,並且與問題非常不同。 – halfer

回答

0

好吧,我正在回答我的問題。因此,爲了獲得最新版本的XBee-API 0.9.2,我需要將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。還有一個套接字服務器的測試代碼。

+0

由於編寫了上述內容,開發人員已將最新版本上傳到Github。我已經下載並能夠編譯它。我可以看到Maven的好處,但我無法在Netbeans下編譯它。 – dazz