Intellij:sbt程序包代码无需编译即可吗?

时间:2018-12-06 13:22:22

标签: java scala merge sbt sbt-assembly

我正在尝试使用sbt程序集编译scala + java代码。起初它似乎完成了,但是当我执行它时,它会说

  

java.lang.IllegalStateException:不支持的MOJO算法

随后出现一些错误,例如

  

在hex.genmodel.ModelMojoFactory.getMojoReader(ModelMojoReader.java78)

另一位同事设法编译了此代码,并且执行没有问题。

我比较了编译消息,发现在编译过程中不存在以下内容:

  

[警告]将'hex \ ModelCategory.class'与策略'第一'合并[警告]   将'hex \ genmodel \ FolderMojoReaderBackend.class'与策略'first'合并   [警告]将'hex \ genmodel \ GenModel.class'与策略'first'合并   [警告]将“ hex \ genmodel \ GenMunger $ Step.class”与策略“ first”合并>   [警告]将'hex \ genmodel \ GenMunger.class'与策略'first'合并   [警告]将'hex \ genmodel \ IGenModel.class'与策略'first'合并

我在自己的汇编中​​也注意到,缺少以下内容:

  

[info]将1个Scala源代码编译为D:\

两个编译器都显示

  

[info]完成包装。

在打包代码之前,如何设置Intellij来编译代码?

更新:

在编译消息中发现了另一个区别:

来自失败的编译:

[info] Loading settings from idea.sbt ...
[info] Loading global plugins from C:\Users\a\.sbt\1.0\plugins
[info] Loading project definition from D:\Test\Code_Repository\Code1\Module1\project\project
[info] Loading settings from assembly.sbt ...
[info] Loading project definition from D:\Test\Code_Repository\Code1\Module1\project
[info] Loading settings from build.sbt ...
[info] Set current project to Model1 (in build file:/D:/Test/Code_Repository/Code1\Module1/)
[info] Run completed in 70 milliseconds.

通过有效的编译:

[info] Loading settings from idea.sbt ...
[info] Loading global plugins from C:\Users\b\.sbt\1.0\plugins
[info] Loading project definition from D:\Code1\Module1\project
[info] Loading settings from assembly.sbt ...
     

[info]正在从build.sbt加载设置... [info]设置当前   项目到Model1(在构建文件中:/ D:/ Code1 \ Module1 /)
     [info]将1个Scala源代码编译为D:\ Code1 \ Module1 \ target \ scala-2.11 \ classes   ... [信息]完成编译。 [info]运行已完成63   毫秒。

有一条额外的线可以加载第二个项目。不知道这是否是原因。任何想法如何禁用它。

0 个答案:

没有答案