我有一个简单的构建工具Multi-Project问题…

我有以下目录结构代表我的java sbt项目:

/project1
/project2
/project3

所以所有项目共享一个共同的直接父文件夹.
项目1的build.sbt中引用了项目2和3,如下所示:

.dependsOn(project2,project3)
.aggregate(project2,project3)

lazy val project2 = ProjectRef(file("../project2"),"project2")

lazy val project3 = ProjectRef(file("../project3"),"project3")

这样,project1和其他人之间存在依赖关系.

到目前为止一切都很好,一切正常.

但是现在我想在执行任何其他操作之前从project2执行main方法.
当我从父(project1)执行“运行”任务时,我希望project2中的特定类执行其主要方法.我该怎么做呢?
sbt文档解释说“聚合意味着在聚合项目上运行任务也将在聚合项目上运行它.”:
http://www.scala-sbt.org/0.13.5/docs/Getting-Started/Multi-Project.html#aggregation

我没有看到我在projet2上的主要课程被执行了.我还将它添加到project2的build.sbt中:

mainClass in (Compile,run) := Some("Main")

该项目的目标是在Compiletime和运行时生成代码. Project2的工作是生成Java和Javascript代码.可以在构建其他项目之前生成.

那可能吗?如果没有,我将不得不独立于其他项目运行project2.

=]

解决方法

如果我有如下所示的结构:


—后端
– – 前端

和一个类似于http://www.scala-sbt.org/0.13/docs/Multi-Project.html所示的build.sbt项目,让我们说:

lazy val commonSettings = Seq(
  version := "0.1.0-SNAPSHOT",scalaVersion := "2.12.1",resolvers := allResolvers,libraryDependencies := AllLibraryDependencies
)

lazy val client = (project in file("client")).
  //  .enablePlugins(PlayScala)
  settings(commonSettings: _*).
  settings(
    name := "client"
  )
  .aggregate(common,frontend,backend)
  .dependsOn(common,backend)


lazy val common = (project in file("common")).
  settings(commonSettings: _*).
  settings(
    name := "common"
  )

lazy val frontend = (project in file("frontend")).
  settings(commonSettings: _*).
  settings(
    name := "frontend"
  )
  .aggregate(common)
  .dependsOn(common)

lazy val backend = (project in file("backend")).
  settings(commonSettings: _*).
  settings(
    name := "backend"
  )
  .aggregate(common)
  .dependsOn(common)

`

然后执行即前端项目中的一个类,这个命令对我有用:

sbt“frontend / runMain sample.cluster.transformation.frontend.TransformationFrontendApp 2551”

java – SBT build,在Compile上运行子项目的主类并运行的更多相关文章

  1. ios – 多个项目和Cocoapods

    解决方法我在工作中遇到了类似的问题,我发现更好的是将项目结构改为使用Cocoapods.我认为您的正确解决方案,或至少正确的路径是将您的公共项目变成本地,privatepod.我实现了我的共同项目,并且我的应用程序项目也配置了CocoaPods,使用该私有pod.最后一句话,当通过CocoaPods构建一个共同的库项目时,您将需要覆盖该项目中的“其他链接器标志”构建设置,就像在CocoaPods创建和管理的Pods项目中一样.让我知道这是否适合你!

  2. android – Guava:java.lang.NoClassDefFoundError – com.google.common.collect.HashBiMap

    当我使用从这里下载的guava库时,我目前面临java.lang.NoClassDefFoundError:com.google.common.collect.HashBiMap的问题:http://code.google.com/p/guava-libraries/我已经将guava-12.0.jar添加到我的项目中作为参考库但我仍然得到错误.你能就这个问题提出一些建议吗?谢谢您的帮助我得到的错

  3. android – 无法解析API文件“frameworks / base / api / current.txt”

    我尝试在Android框架中添加一些文件.一切顺利,除了在编译结束时,我得到低于错误.我也试过makeupdate-api,但没有运气,每次编译它都会给出以下错误.如果有人知道如何解决这个问题,请告诉我.解决方法这个问题的原因是,原因:–我在Android框架中添加私有类,这些类文档/声明必须添加到“frameworks/base/api/current.txt”解决方案:–根据错误日志,有两种解

  4. android – 在AOSP中修改SDK API

    我试图在AOSP(主分支)中修改FingerprintGestureControllerAPI以返回布尔值而不是void,但即使重新编译SDK后,我仍然在构建项目时遇到错误.错误是:我编译的步骤是:有人可以指导我如何在源代码中更改android发布的SDKAPI并编译android.解决方法您需要确保使用方法签名更改更新了以下文件:

  5. JSP使用Common FileUpload组件实现文件上传及限制上传类型实例代码

    这篇文章主要介绍了JSP使用Common FileUpload组件实现文件上传及限制上传类型实例代码,需要的朋友可以参考下

  6. 如何修复特性中的方法ScopingSetting已弃用SBT中的警告

    我在SBT中收到一条警告,要迁移到下面的新斜杠语法。我尝试了以下方法,但没有成功。

  7. Harbor:私有企业级Registry仓库--快速搭建

    docker,默认安装即可dockercompose,安装最新版harbor离线安装包,下载最新版本,如果在线下载失败,我上传了一份到百度云:https://pan.baidu.com/s/1dnDZjg导入harbor镜像解压harbor离线安装包进入harbor目录有如下文件:导入harbor镜像如果提示:CannotconnecttotheDockerdaemon.Isthedockerdaemonrunningonthishost?修改harbor配置编辑harbor.cfg文件修改hostnam

  8. Ubuntu-14.04.5搭建Hadoop-2.9.0分布式集群环境

    必须安装并且保证sshd一直运行,以便用Hadoop脚本管理远端Hadoop守护进程。

  9. CentOS手动安装sbt过程

    地址:http://blog.csdn.net/lizhitao/article/details/46846343参见官网配置说明http://www.scala-sbt.org/release/tutorial/Manual-Installation.html1、下载sbt通用平台压缩包:sbt-0.13.5.tgzhttp://www.scala-sbt.org/download.html2、

  10. CentOS 7安装部署Rsync数据同步服务器

    你可以使用它进行本地数据或远程数据的复制,Rsync可以使用SSH安全隧道进行加密数据传输。Rsync服务器端定义源数据,Rsync客户端仅在源数据发生改变后才会从服务器上实际复制数据至本地,如果源数据在服务器端被删除,则客户端数据也会被删除,以确保主机之间的数据是同步的。使用CentOS7系统安装部署Rsync非常方便,安装光盘以及YUM源中都提供了rsync软件包,使用YUM方式安装即可。

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部