程序员指南
这些只是程序员想配合的ERDDAP因为Java课堂需要知道。
获取源代码
- GitHub 上的 Via 源代码 近期公开版本和开发中版本的源代码也可通过下列途径获取:GitHub 图像。 。 。 。 请读一下维基为这个项目。 如果您想要修改源代码 (并可能将修改纳入标准ERDDAP™分发) ,这是建议的方法。
ERDDAP™依赖关系
ERDDAP™使用 Maven 来装入代码依赖以及一些静态引用文件 (WEB-INF/ ref (英语).) 。 。 。 这是为了避免在寄存器中存储许多大文件. 您可以使用“ mvn 编译” , 这将获取依赖关系和校对文件 。 您也可以使用“ mvn 包” 来生成战争文件 。 您可以手动下载参考文件 :
-
etopo1\_ice\_g\_i2.zip并解析为/WEB-INF/ref/.
-
参考文件.zip并解析为/WEB-INF/ref/.
-
erddap 组件.zip (1.0.0,2033字节,MD5=2B8D2A5AE5ED73E3A42B529C168C60B5,日期为2024-10-14) 并将其解析为 tomcat,创建_tomcat_/content/erddap。 。 。 。
注:默认情况下,Maven会缓存静态引用和测试数据存档下载,仅在下载新版本时才提取. 要全部跳过下载, 您可以将“ skipResourceDownload” 和/ 或“ skip TestResourceDownload” 属性设置为 Maven (例如,mvn - Dskip 资源下载包
) 。 。 。 为强制提取,设置“-Ddownload.unpack= true”和“-Ddownload.unpack when Changed=false” 。
-
ERDDAP™及其子组件具有非常宽松,开源许可证,这样你就可以为任何目的使用和修改源代码,无论是盈利还是非营利. 请注意:ERDDAP™并且许多子组件拥有许可证,需要您确认您使用的代码来源。 见贷项。 。 。 无论是否需要,承认所有这些贡献者只是好的形式。
-
对其它项目使用代码
欢迎您使用ERDDAP™用于其他工程的代码,警告该代码可以并且将会改变。 我们不承诺支持我们代码的其他用途. Git 和 GitHub 将是您处理这个问题的主要解决方案 -- Git 允许您将我们的更改合并到您的更改中。 在很多情况下,你可能会 试图使用部分ERDDAP™在你的工程中,我们认为你会发现 安装和使用更容易ERDDAP™同样, 然后写其他使用ERDDAP服务。 你可以自己设ERDDAP™在一两个小时后就安装了 你可以自己设ERDDAP™几天后以抛光方式安装 (取决于数据集的数量和复杂程度) 。 。 。 。 但是,黑进部分ERDDAP™可能要花上几周时间 (和数月捕捉微妙) 然后您将失去后续修改和错误修正的能力ERDDAP™释放 我们 (很明显) 认为使用ERDDAP™也让你ERDDAP™安装可公开访问。 然而,在某些情况下,你可能不想做你的ERDDAP™安装可公开访问。 那么,你的服务可以进入和使用你的私人ERDDAP™你的客户不需要知道ERDDAP™。 。 。 。
半径
或者,还有一种方法,你可能会发现有用 在探索之间ERDDAP代码和使用ERDDAP™作为一个独立的网络服务: 在EDD 类中,有一个静态方法,可以让你制作一个数据集实例 (基于datasets.xml) 数字 : '一个来自数据集' xml 数据 (字符串 tDatasetID) 返回 EDD表或EDDGrid数据集。 既然如此,你可以打电话 “ make NewFileForDap查询 (字符串用户DapQuery、字符串目录、字符串文件Name、字符串文件 类型Name) `让实例制作特定文件的数据文件Type,并附上用户查询的结果。 因此,这是一个简单的使用方式ERDDAP正如客户端会使用ERDDAP™网络应用程序。 但是这个方法在你的Java程序并绕过像Tomcat这样的应用程序服务器的需要. 我们在EDD Table和EDDGrid子类,所以您可以在源代码中看到所有这些类的例子。
发展环境
-
可选 数字 : 设置ERDDAP™在汤姆卡特 从ERDDAP™我们强烈建议你们遵守标准安装指令安装Tomcat,然后安装ERDDAP™在Tomcat的网络应用目录中。 除其他事项外,ERDDAP™被设计为安装在Tomcat的目录结构中,并期望Tomcat提供一些.jar文件.
-
ERDDAP™不需要特定的IDE (Chris主要使用Visual Studio代码,Bob使用EditPlus) 。 。 。 我们不使用Eclipse、Ant等;我们也不提供ERDDAP- 与他们相关的支持。 工程确实使用了马文.
-
我们使用一个批量文件删除源树中所有 . class 文件,以确保我们有一个干净的编译 (带Javac) 。 。 。 。
-
目前我们使用领养的javac jdk-21.0.3+9来编译gov.noaa.pfeg.coastwatch.Testall. (它有链接到几个类,否则不会编译) 并进行测试。 出于安全考虑,几乎总是最好使用最新的版本。Java21和汤姆卡特10。
-
当运行 javac 或 java 时, 当前目录为 tomcat/webapps/erddap/WEB-INF 。
-
我们的Javac和Java阶级是
类;./././lib/servlet-api.jar;lib/*
-
所以,你的Javac指挥线 会是类似的东西 `javac-编码UTF-8-cp类;././lib/servlet-api.jar;lib/*类/gov/noaa/pfel/coastwatch/TestAll.java'
-
你的Java指挥线会像...
java-cp班;./././lib/servlet-api.jar;lib/*-Xmx4000M-Xms4000M /政府/noaa/pfel/海岸监视/试验
备选:你可以添加`-动词:gc',它说明:Java打印垃圾收集统计数据。 -
如果测试 所有编译,一切ERDDAP™已经汇编了需求。 几门课是编的 不需要用于ERDDAP™。 。 。 如果编译TestAll成功,但不编译一些类,那类就不需要了. (有一些未完成/未使用的课程。)
-
-
在少数情况下,我们使用第三方源代码而不是.jar文件 (特别针对DODS) 并稍作修改,以避免出现与Java21. 我们经常作出其他微小修改。 (目标DODS) 由于其他原因。
-
大多数班级在其相关的src/test文件中都有测试方法. 您可以使用“mvn测试”命令进行JUnit测试。 这将下载从最近发布的测试中依赖的数个数据zip文件ERDDAP/埃尔达普 测试。 。 。 。 。 注:Maven缓存下载,但会解析每次执行中下载的档案,这需要时间。 跳过下载 并解密测试数据档案,您可以指定“ skip Test RequestDownload” 属性给 Maven (例如,
mvn - Dskip TestResource' 软件包
) 。 。 。 。
重要类
如果你想看看源代码 并试图找出如何ERDDAP™工作,请。
-
密码有Java医生评论,但Java医生还没有生成。 自由产生它们吧
-
最重要的班级 (包括以下所述) 在政府/noaa/pfel/erddap范围内。
-
那个ERDDAP™类有最高级别的方法。 它扩展了HttpServlet.
-
ERDDAP™将请求转到以下类别:EDDGrid