编译SNAP

2023年 7月 14日 91.3k 0

引用自:senbox.atlassian.net/wiki/spaces…

1、环境准备

     (1)Java JDK,最新版的SNAP将JDK升级到了11,老版本可以使用8,OpenJDK也可以,二者之间的比较可以参看devexperts.com/blog/oracle…,官方推荐使用Liberica JDK,下载链接:Download OpenJDK Builds for Linux, Windows & macOS (bell-sw.com)。

    (2)Maven,3.2.5或以上,官方推荐3.9.2。

    (3)Git

2、下载源代码

    SNAP相关的所有代码,都发布在GitHub中,链接为:github.com/senbox-org/,必备的存储库包括snap-engine和snap-desktop。建议将下载的源代码统一存放在单独的文件夹中,例如snap。

cd 
mkdir snap

cd snap
git clone https://github.com/senbox-org/snap-engine.git
cd snap-engine
mvn clean install  

cd ..
git clone https://github.com/senbox-org/snap-desktop.git
cd snap-desktop
mvn clean install

    也可以下载并学习snap-examples project,里面有些有价值的例子。

3、在IDEA中导入源代码

    (1)打开IDEA,点击File→New→Project from Existing Sources,也可以在欢迎页面中选择Import Project。

    (2)在弹出的对话框中选择snap engine源代码所在文件夹,注意将Import project from external model和Maven两个选项选中,其他保持默认值即可。

    (3)点击File→New→Module from Existing Sources,选择snap desktop文件夹,其余选项保持默认值。

    (4)如果想要导入其他项目,重复上一步操作。

    (5)点击File→Project Structure,设置SDK为Java 11,Language Level为:11 - Local variable syntax for lambda parameters,点击确定。

    (6)在界面右侧的Maven Projects标签中,可以看到IDEA已经正确识别Maven相关的项目列表。

    可点击Maven面板右上方的选项按钮,选中Group Modules,将项目按Module进行组织并显示。

4、在IDEA中编译

    (1)在Maven面板中,按照SNAP Engine Project、SNAP Desktop Project、其余Module的顺序,逐个展开项目下面的Lifecycle,按次序右键选择clean和install,并点击Run Maven Build,对项目进行编译。

    (2)编译过程中如果出现错误,可尝试点击Maven面板中的第三个按钮,选择Download Sources and Documentation,下载Maven中依赖的各种环境。

    (3)由于Maven中很多源都在国外,下载速度极慢且容易断线,出现各种错误,可为IDEA中的Maven增加国内阿里云镜像

如图,右键点击pom文件 maven——open ‘setting.xml’(若setting.xml不存在,则create ‘setting.xml’)

然后,把镜像配置到如图所示位置


   
      alimaven
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/ 
     central 
   

保存,退出,重启IDEA,即大功告成 。

5、运行编译好的SNAP

为了正确运行编译成功的SNAP,需要对项目进行配置,方式为:

    (1)点击Run→Edit Configurations,添加一个Application类型的配置项。

    (2)在弹出的界面中进行如下配置:   

下面配置参数中,是/snap/snap-desktop/snap-application/target/snap的缩写
Main class: org.esa.snap.nbexec.Launcher
VM options: -Dsun.java2d.noddraw=true -Dsun.awt.nopixfmt=true -Dsun.java2d.dpiaware=false -Dorg.netbeans.level=INFO -Dsnap.debug=true -Xmx4G
Program arguments: --userdir "/../userdir" --patches "/snap/snap-engine/$/target/classes"
Working directory: 
Use classpath of module: snap-main

    (3)加入Toolboxes运行SNAP

    为了能够将哨兵一号、哨兵二号等Toolboxes加入到框架中运行,需要对Configuration进行配置,上面的配置可以作为模板参考。具体如下:

    扩展--patches选项,令其包含编译成功后的Toolboxes。

--patches "/snap/snap-engine/$/target/classes;
           /snap/microwave-toolbox/$/target/classes;
           /snap/microwave-toolbox/rstb/$/target/classes;
           /snap/microwave-toolbox/jlinda/$/target/classes;
           /snap/optical-toolbox/$/target/classes"

    同时,需要补充--clusters参数,该参数包含了需要加载的所有模块。

--clusters "/snap/microwave-toolbox/microwavetbx-kit/target/netbeans_clusters/microwavetbx;
            /snap/microwave-toolbox/microwavetbx-kit/target/netbeans_clusters/rstb;
            /snap/optical-toolbox/opttbx-kit/target/netbeans_clusters/opttbx"

    IDEA支持多个启动项的配置,只需要为不同的Configuration命名不同的Name即可。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论