該GitHub存儲庫包含實施IVOA標準和協議的3個庫的來源:
有關完整的文檔/教程和3個庫的演示,您應該訪問以下網站:Adqltuto,Uwstuto和Taptuto。
這些庫是在Java 7中開發的。
這些圖書館中的三個屬於LGPL V3許可證的條款。您可以在文件src/copying和src/copying.lesser中找到完整的描述和所有使用條件。
我強烈建議您在這裡宣布您遇到的任何問題。因此,任何遇到相同問題的人都可以看到他/她的問題是否已經知道。如果知道該問題,則將發布有關其決議的進度和/或評論。
此外,如果您已經分配了此存儲庫,並在您身邊進行了一些更正,這些更正可能會使圖書館的任何其他用戶都感興趣,請在此處發送拉動請求。如果這些修改與IVOA定義相適當,並且對您的用語酶不太具體,則它們將在此存儲庫上集成(也許是經過一些修改後),因此可以提供給所有人。
每個庫都有自己的軟件包(用於ADQL的adql ,UWS的uws和tap for Tap)。這些軟件包是獨立的,除了tap還需要其他兩個軟件包。除這些軟件包外,您還將找到cds ,這是庫的依賴性。
以下是每個庫的依賴關係的總結:
| ADQL | UWS | 輕敲 | |
|---|---|---|---|
軟件包adql | x | x | |
包cds.utils | x | x | |
| Postgres JDBC驅動程序 | x | x | |
包uws | x | x | |
| JSON圖書館 | x | x | |
| HTTP Servlet API | x | x | |
| HTTP多部分庫 | x | x | |
軟件包cds.* | x | ||
| Stil庫 | x |
在lib目錄中,您將找到3個JAR文件:
commons-fileupload-1.3.3.jar (和commons-io-2.6.jar )。該庫有助於處理上傳。stil_3.3-2.jar (即nom.tap , org.apache.tools.bzip2 , uk.ac.starlink )。該庫有助於支持投票(讀寫)和其他一些輸出格式。json-20180813.jar (即前者包含的軟件包org.json )。該庫有助於操縱JSON內容。該庫已被使用(在UWS-LIB的v4.4和Tap-lib的v2.3之前),但它包含在源中,而不是被視為外部庫。僅當您要使用(並保留) adql.translator.PgSphereTranslator時,才需要Postgres JDBC驅動程序。您可以在PostgreSQL網站上獲取此驅動程序。 ADQL和TAP庫的所需軟件包是org.postgresql (尤其是類org.postgresql.Driver )。
HTTP Servlet API通常在您使用的Web應用程序服務器的庫中可用。例如,對於tomcat,它在目錄lib中(OR /var/lib/tomcat-x/lib ,如果在Linux系統上安裝了; x是tomcat的版本編號)。 UWS和TAP庫的所需軟件包是javax.servlet 。
注意:此GIT存儲庫中未提供Postgres JDBC驅動程序和HTTP Servlet API,以避免版本與主機系統不兼容(即結帳/Clone/clone/fork此存儲庫時您的計算機)。
這三個庫的來源帶有一些Junit測試文件。您可以在test目錄中找到它們。
如果您使用的是Eclipse(或者也可能在另一個集成開發環境中),Junit通常已經可用。然後,您可以直接執行並編譯提供的JUNIT測試文件。因此,您不需要下面提到的兩個庫。
否則,您將需要獲取Junit庫。通常,它配有JDK,但您也可以在Junit網站上找到相應的JAR。
您可能還需要另一個名為hamcrest的庫。您可以在其Maven存儲庫上找到這個;只是要確保擁有一切所需的一切,只需將hamcrest-all作為一個罐子。
注意:此GIT存儲庫中未提供JUNIT和HAMCREST庫,以避免版本與主機系統不兼容(即在您結帳/clone/fork時使用此存儲庫時的計算機)。
在存儲庫的根源上,有3個螞蟻腳本。每個都專門用於一個庫。他們能夠生成罐子來源,二進製文件和Javadoc。
在使用以下腳本之一之前,必須設置4個屬性:
POSTGRES僅適用於ADQL,然後點擊如果要保留ADQL.TRANSLATOR.PGSPHERETRANSLATOR :通往罐子或包含所有org.postgresql.*SERVLET-API僅適用於UWS,然後點擊:通往罐子或包含所有javax.servlet.*JUNIT-API :通往一個或幾個罐子或二進制目錄的路徑,其中包含所有類別使用Junit的類。JNDI-API僅用於TAP,並且僅當您通過運行JUNIT測試感興趣:通往一個或幾個罐子或二進制目錄的路徑,該目錄包含所有類以運行JNDI。為此存在幾個圖書館; Simple-Jndi非常簡單,並且由庫開發人員使用來運行相關的JUNIT測試。注意:此GIT存儲庫中未提供JNDI庫,因為任何JNDI庫都可以工作,並且沒有理由強加特定的庫。此外,與編譯源所需的其他庫類似,它允許避免版本與主機系統不兼容(即在此存儲庫結帳/clone/fork時您的計算機)。
所有這些螞蟻腳本都有以下主要目標:
junitValidation :執行與目標庫有關的所有JUNIT測試,並以任何錯誤停止ANT。如果目標庫是點擊,則運行三個庫的JUNIT測試。buildLib默認值:運行JUNIT測試,如果它們都成功,請編譯目標庫的類,並與它們及其依賴關係構建JAR文件。buildLibAndSrc :與包含所有來源和所需庫的jar文件的buildLib +構建相同。buildJavadoc :生成一個包含目標庫類的Javadoc的罐子。buildAll :相當於buildLibAndSrc和buildJavadoc 。結果是3罐:一個帶有編譯類的罐子,一個帶有相應的來源,最後一個帶有Javadoc。該代碼可以用Gradle構建,要么作為JAR文件,要么將其包含在其他項目中,也可以作為將其部署在Tomcat中的戰爭文件。