ROS中package.xml檔案標籤
目錄
概述
該軟體包清單是一個XML檔名為package.xml中必須包括與任何相容包的根資料夾。此檔案定義有關包的屬性,例如包名稱,版本號,作者,維護者以及其他catkin包的依賴關係。請注意,這個概念類似於傳統rosbuild構建系統中使用的manifest.xml檔案。
您的系統包依賴關係在package.xml中宣告。如果缺少或不正確,您可能可以從原始碼構建,並在自己的機器上執行測試,但是當釋出到ROS社群時,您的軟體包將無法正常工作。其他依賴於這些資訊來安裝他們使用您的軟體包所需的軟體。
格式2(推薦)
這是新軟體包的推薦格式。還建議將較舊的格式1包遷移為格式2.有關從格式1遷移到格式2的說明,請參閱
基本結構
每個package.xml檔案都有<package>標籤作為根標記檔案。
<package format =“2”> </ package>
所需標籤
有一小部分標籤需要巢狀在<package>標籤中,以使包清單完整。
-
<name> - 包的名稱
-
<version> - 包的版本號(需要3個點分隔的整數)
-
<description> - 包裝內容的描述
-
<maintainer> - 維護包的人員的名稱
-
<license> - 釋出程式碼的軟體許可證(例如GPL,BSD,ASL)。
例如,這裡是一個名為foo_core的虛構包的包清單。
<package format="2"> <name>foo_core</name> <version>1.2.4</version> <description> This package provides foo capability. </description> <maintainer email="[email protected]">Ivana Bildbotz</maintainer> <license>BSD</license> </package>
依賴關係
具有最小標籤的包清單不指定對其他包的任何依賴關係。軟體包可以有六種依賴關係:
-
構建依賴關係指定構建此包所需的包。在構建時需要這些軟體包中的任何檔案時才是這種情況。這可以包括在編譯時的標頭檔案,連結到這些包的庫檔案或在構建時需要任何其他資源(特別是當這些包在CMake 中是find_package()時)。在交叉編譯場景中,構建依賴關係針對目標體系結構。
-
構建匯出依賴關係指定根據此包構建庫所需的包。當您將此標頭檔案包含在此包中的公用標頭檔案中時(特別是當CMake中的catkin_package()中宣告為(CATKIN_DEPENDS 時),就是這種情況。
-
執行依賴關係指定在此程式包中執行程式碼所需的軟體包。當您依賴此程式包中的共享庫(尤其是當CMake 中的catkin_package()中宣告為(CATKIN_DEPENDS )時),就是這種情況。
-
測試依賴關係僅指定單元測試的附加依賴項。他們不應該將已經提到的任何依賴關係重複為構建或執行依賴關係。
-
構建工具依賴關係指定此軟體包需要構建自身的構建系統工具。通常唯一的構建工具是catkin。在交叉編譯場景中,構建工具依賴關係用於執行編譯的架構。
-
文件工具依賴關係指定此軟體包需要生成文件的文件工具。
這六種依賴關係使用以下相應的標籤來指定:
-
<depend>指定依賴關係是構建,匯出和執行依賴關係。這是最常用的依賴標記。
-
<buildtool_depend>
-
<build_depend>
-
<build_export_depend>
-
<exec_depend>
-
<test_depend>
-
<doc_depend>
所有包至少有一個依賴關係,構建工具依賴於catkin,如下例所示。
<package> <name>foo_core</name> <version>1.2.4</version> <description> This package provides foo capability. </description> <maintainer email="[email protected]">Ivana Bildbotz</maintainer> <license>BSD</license> <buildtool_depend>catkin</buildtool_depend> </package>
指定構建,執行,測試和文件依賴關係的更現實的示例可能如下所示。
<package> <name>foo_core</name> <version>1.2.4</version> <description> This package provides foo capability. </description> <maintainer email="[email protected]">Ivana Bildbotz</maintainer> <license>BSD</license> <url>http://ros.org/wiki/foo_core </url> <author>Ivana Bildbotz</author> <buildtool_depend>catkin</buildtool_depend> <depend>roscpp</depend> <depend>std_msgs</depend> <build_depend>message_generation</build_depend> <exec_depend>message_runtime</exec_depend> <exec_depend>rospy</exec_depend> <test_depend>python-mock</test_depend> <doc_depend>doxygen</doc_depend> </package>
關於依賴關係的更多細節可以在這裡的 catkin API文件中找到。
Metapackages
將多個軟體包分組為單個邏輯軟體包通常很方便。這可以通過metapackages來實現。元包是在package.xml中具有以下匯出標記的普通包:
<export> <metapackage /> </ export>
除了所要求的<buildtool_depends>的依賴,元資料包只能有在包上執行依賴關係,其中它們組。
另外,metapackage有一個必需的,樣板CMakeLists.txt檔案:
cmake_minimum_required(VERSION 2.8.3) project(<PACKAGE_NAME>) find_package(catkin REQUIRED) catkin_metapackage()
注意:將<PACKAGE_NAME>替換為metapackage的名稱。
附加標籤
-
<url> - 有關該軟體包資訊的URL,通常是ros.org上的wiki頁面。
-
<author> - 包的作者
格式1
舊的catkin pakages使用格式1.如果<package>標籤沒有format屬性,它是一個格式1的包。使用格式2的新包。
package.xml的格式很簡單。
基本結構
每個package.xml檔案都有<package>標籤作為根標記檔案。
<package> </package>
所需標籤
有一小部分標籤需要巢狀在<package>標籤中,以使包清單完整。
-
<name> - 包的名稱
-
<version> - 包的版本號(需要3個點分隔的整數)
-
<description> - 包裝內容的描述
-
<maintainer> - 維護包的人員的名稱
-
<license> - 釋出程式碼的軟體許可證(例如GPL,BSD,ASL)。
例如,這裡是一個名為foo_core的虛構包的包清單。
<package> <name>foo_core</name> <version>1.2.4</version> <description> This package provides foo capability. </description> <maintainer email="[email protected]">Ivana Bildbotz</maintainer> <license>BSD</license> </package>
構建,執行和測試依賴關係
具有最小標籤的包清單不指定對其他包的任何依賴關係。軟體包可以有四種依賴關係:
-
構建工具依賴關係指定此軟體包需要構建自身的構建系統工具。通常唯一的構建工具是catkin。在交叉編譯場景中,構建工具依賴關係用於執行編譯的架構。
-
構建依賴關係指定構建此包所需的包。在構建時需要這些軟體包中的任何檔案時才是這種情況。這可以包括這些包在編譯時的標頭,連結到這些包的庫或在構建時需要任何其他資源(特別是當這些包在CMake 中是find_package())時)。在交叉編譯場景中,構建依賴關係針對目標體系結構。
-
執行依賴關係指定在此程式包中執行程式碼所需的軟體包,或針對此軟體包構建庫。在這種情況下,您依賴於共享庫或將其頭部包含在此包中的公頭中(特別是當這些包在CMake 中的catkin_package()中宣告為(CATKIN_DEPENDS)時)。
-
測試依賴關係僅指定單元測試的附加依賴項。他們不應該將已經提到的任何依賴關係重複為構建或執行依賴關係。
這四種類型的依賴關係使用以下相應的標籤來指定:
-
<buildtool_depend>
-
<build_depend>
-
<run_depend>
-
<test_depend>
所有包至少有一個依賴關係,構建工具依賴於catkin,如下例所示。
<package> <name>foo_core</name> <version>1.2.4</version> <description> This package provides foo capability. </description> <maintainer email="[email protected]">Ivana Bildbotz</maintainer> <license>BSD</license> <buildtool_depend>catkin</buildtool_depend> </package>
指定構建,執行時和測試依賴關係的更實際的示例可能如下所示。
<package> <name>foo_core</name> <version>1.2.4</version> <description> This package provides foo capability. </description> <maintainer email="[email protected]">Ivana Bildbotz</maintainer> <license>BSD</license> <url>http://ros.org/wiki/foo_core</url> <author>Ivana Bildbotz</author> <buildtool_depend>catkin</buildtool_depend> <build_depend>message_generation</build_depend> <build_depend>roscpp</build_depend> <build_depend>std_msgs</build_depend> <run_depend>message_runtime</run_depend> <run_depend>roscpp</run_depend> <run_depend>rospy</run_depend> <run_depend>std_msgs</run_depend> <test_depend>python-mock</test_depend> </package>
有關依賴關係的更多細節可以在這裡找到。
Metapackages
將多個軟體包分組為單個邏輯軟體包通常很方便。這可以通過metapackages來實現。元包是在package.xml中具有以下匯出標記的普通包:
<export> <metapackage /> </export>
除了所要求的<buildtool_depends>的依賴,元資料包只能有在包裝上執行依賴關係,其中它們組。
cmake_minimum_required(VERSION 2.8.3) project(<PACKAGE_NAME>) find_package(catkin REQUIRED) catkin_metapackage()
注意:將<PACKAGE_NAME>替換為metapackage的名稱。
附加標籤
-
<url> - 有關該軟體包資訊的URL,通常是ros.org上的wiki頁面。
-
<author> - 包的作者
最後來一個小海龜的package.xlm的例子
<?xml version="1.0"?> <package> <name>turtlesim</name> <version>0.5.5</version> <description> turtlesim is a tool made for teaching ROS and ROS packages. </description> <maintainer email="[email protected]">Dirk Thomas</maintainer> <license>BSD</license> <url type="website">http://www.ros.org/wiki/turtlesim</url> <url type="bugtracker">https://github.com/ros/ros_tutorials/issues</url> <url type="repository">https://github.com/ros/ros_tutorials</url> <author>Josh Faust</author> <buildtool_depend>catkin</buildtool_depend> <build_depend>geometry_msgs</build_depend> <build_depend>libqt4-dev</build_depend> <build_depend>message_generation</build_depend> <build_depend>qt4-qmake</build_depend> <build_depend>rosconsole</build_depend> <build_depend>roscpp</build_depend> <build_depend>roscpp_serialization</build_depend> <build_depend>roslib</build_depend> <build_depend>rostime</build_depend> <build_depend>std_msgs</build_depend> <build_depend>std_srvs</build_depend> <run_depend>geometry_msgs</run_depend> <run_depend>libqt4</run_depend> <run_depend>message_runtime</run_depend> <run_depend>rosconsole</run_depend> <run_depend>roscpp</run_depend> <run_depend>roscpp_serialization</run_depend> <run_depend>roslib</run_depend> <run_depend>rostime</run_depend> <run_depend>std_msgs</run_depend> <run_depend>std_srvs</run_depend> </package>
相關推薦
ROS中package.xml檔案標籤
目錄 概述 該軟體包清單是一個XML檔名為package.xml中必須包括與任何相容包的根資料夾。此檔案定義有關包的屬性,例如包名稱,版本號,作者,維護者以及其他catkin包的依賴關係。請注意,這個概念類似於傳統rosbuild構建系統中使用的manifest.xm
ROS-package.xml檔案
前言:package.xml是一個XML檔名為package.xml中必須包括與任何相容包的根資料夾。此檔案定義有關包的屬性,例如包名稱,版本號,作者,維護者以及其他catkin包的依賴關係。 標籤 功能 <?xml>
MyBatis中的xml檔案部分標籤使用
1:parameterType、resultType 無非就是物件,map,其他型別 <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.
springboot多模組專案,引用子專案的mapper中的xml檔案
springboot多模組專案,引用子專案的mapper中的xml檔案,一直引用不到, 提示: Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): utopi
Ros 中的launch檔案
在ROS中,每個節點通常有許多引數需要設定,為了方便高效操作多個節點,可以編寫launch檔案,然後用roslaunch命令執行 使用方式: roslaunch [options] [package]<filename>[arg_name:=value...] roslaun
去掉IntelliJ IDEA 中mapper xml 檔案警告
版權宣告:本文為博主原創文章,如需轉載,請寫明出處, 尊重他人即尊重自己(^_^)。 http://blog.csdn.net/aubdiy/article/details/68485336 IntelliJ IDEA 開啟 mybatis 的 xml 檔案時,對應的 xml
IntelliJ IDEA中建立xml檔案
1、file—setting,左上角輸入template, 2、在左側欄找到File And Code Templates 3、中間選中Files 4、點選+號,新增模板 5、輸入模板名字:Name:mybatis-cfg.xml (nam
tomcat中server.xml檔案配置解析
server.xml配置簡介 下面是這個檔案中的基本配置資訊,更具體的配置資訊見tomcat的文件 server:
javaweb中的xml檔案報錯:Multiple annotations found at this line:
今天在學習java web中的Filter的時候在配置xml檔案的報了一個錯誤: Multiple annotations found at this line: - <?xml version="1.0" encoding="UTF-8"?>
Idea中pom.xml檔案新增包的時候不自動提示解決方法
解決方案很簡單: (1)File–>Settings… (2)Build,Execution,Deployment --> Build Tools --> Maven -->Reposi tories (3)選中第一項,右側的Update便會亮起 (4)點選Up
如何在tomcat伺服器中讀取xml檔案(路徑問題)
因為之前用的dom4j讀取的都是本地的xml檔案,所以一旦在伺服器中就不能再像之前那樣獲取xml路徑了。 可以通過反射獲得專案的src的路徑。 問題:如何在伺服器中讀取xml檔案(路徑問題)讀取product.xml檔案 解決方案:
Eclipse中設定XML檔案的自動格式化配
在Eclipse下編輯XML檔案時可以像Java檔案一樣進行格式化。不過,預設的格式化設定效果不太理想,尤其是標籤屬性較多時。 通過以下設定可以達到一個相對理想的效果: Window -> Preferences -> XML ->XML Fi
FLEX中讀取XML檔案
有時候我們可能需要在FLEX中操作XML檔案. 可以在Flex客戶端工程的資原始檔夾asserts裡面新增.asserts/config/text.xml 如下: <configuration> <config> <con1 tit
Mybatis 中 Mapper XML 檔案 的學習詳解(強烈推薦)
Auto-mapping As you have already seen in the previous sections, in simple cases MyBatis can auto-map the results for you and in others you will need
java中解析xml檔案的五種常見方法:DOM4J,dom,pull,SAX,Jdom
package com.zhidi.dom4jtest; import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import or
JAVA以及JSP中讀取XML檔案(解析及路徑問題)
在系統開發過程中,從配置檔案中讀取配置資訊是每一個系統必須具備的功能,例如,我們要配置讀取資料庫配置資訊,包括驅動程式名、連線字串,使用者名稱,口令等資訊,由於這些資訊會隨著使用者的不同而發生
mybatis中的.xml檔案總結--mybatis的動態sql
https://www.cnblogs.com/xiaoxi/p/6406504.html resultMap resultType可以指定pojo將查詢結果對映為pojo,但需要pojo的屬性名和sql查詢的列名一致方可對映成功。 如果sql查詢欄位名和pojo的屬性名不一致,可以通過
解決Struts2中的XML檔案沒有提示的問題
剛接觸Struts時,你可能會遇到這樣的問題,在寫XML配置檔案的時候,輸入尖括號"<"後,按快捷鍵alt+/沒有程式碼提示,可別人的有,現在我們分析下原因。在Struts.xml中有這樣一段:
QT中讀取XML檔案三種方式 的例項
第一部分:QXmlStreamReader XML(eXtensible Markup Language)是一種通用的文字格式,被廣泛運用於資料交換和資料儲存(雖然近年來 JSON 盛行,大有取代 XML 的趨勢,但是對於一些已有系統和架構,比如 WebService,由於歷史原因,仍舊會繼
Spring專案中對XML檔案熱載入程式碼實現
前言: 平時我們進行Spring專案開發的時候,經常需要因為XML的改變而重啟伺服器,假如專案較大的時候,重啟將會非常耗時。最近編寫的webschool框架需要用到較多的XML檔案進行配置,在這裡參考公司程式碼,實現了對XML檔案的熱載入。 效果 每