scala – 如何在SBT中的项目和构建定义项目之间共享代码
发布时间:2020-12-16 18:41:18 所属栏目:安全 来源:网络整理
导读:如果我在SBT中的构建定义项目(在/ project / src / main / scala中)中编写了一些源代码.现在我想在我正在构建的项目中使用这些类.有最好的做法吗?目前我已经创建了一个自定义任务,可以复制.scala文件. 解决方法 你可以做以下工作吗?将有问题的类的源代码放
如果我在SBT中的构建定义项目(在/ project / src / main /
scala中)中编写了一些源代码.现在我想在我正在构建的项目中使用这些类.有最好的做法吗?目前我已经创建了一个自定义任务,可以复制.scala文件.
解决方法
你可以做以下工作吗?将有问题的类的源代码放在项目的一部分中,而不是构建定义的一部分; “使用Kryo序列化
Scala对象图并将它们作为文件写入项目的类路径的任务”部分听起来像是resourceGenerators的完美工作(参见
http://www.scala-sbt.org/0.13.2/docs/Howto/generatefiles.html).然后唯一剩下的问题是如何从资源生成器引用已编译的类.我不熟悉Kryo.为了使用它,你需要在编译生成器时在类路径上编译编译的类,还是只需要在运行时的类路径上?如果后者足够,那就更容易了.您可以从Test key中的testLoader获取一个类加载器,加载该类并通过反射实例化一些对象,然后调用Kryo.
如果您在编译资源生成器时确实需要编译的类在类路径上,那么您有一个鸡和蛋的问题,在编译项目之前无法编译构建,但当然项目不能在编译构建定义之前编译.在那种情况下,在我看来除了以外你别无选择: 1)您已经在做的解决方法(在这种情况下,“最佳实践”将包括使用sourceGenerators将源从您的构建定义复制到target / src_managed) 2)将有问题的类放在一个单独的项目中,并从构建和项目中依赖它.这是整体上最干净的解决方案,但您可能会认为它太重量级了. 希望这可以帮助.也有兴趣看到别人对此的看法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何简单快速的修改Bootstrap
- [后端人员耍前端系列]KnockoutJs篇:使用KnockoutJs+Bootst
- angularjs – 如何使$watch函数在Test中执行?
- shelll脚本 for while until 循环
- 使用AngularJS进行初始验证
- shell – 在Vagrant配置后以用户身份执行命令
- bootstrap table 以及xEdittable的应用
- python – pip install AttributeError:_DistInfoDistri
- angularjs – 为什么ng-mouseover不适用于ng-if
- 使用Angular与TypeScript构建Electron应用(六)