java – SBT build,在Compile上运行子项目的主类并运行
|
我有一个简单的构建工具Multi-Project问题…
我有以下目录结构代表我的java sbt项目: /project1 /project2 /project3 所以所有项目共享一个共同的直接父文件夹. .dependsOn(project2,project3)
.aggregate(project2,project3)
lazy val project2 = ProjectRef(file("../project2"),"project2")
lazy val project3 = ProjectRef(file("../project3"),"project3")
这样,project1和其他人之间存在依赖关系. 到目前为止一切都很好,一切正常. 但是现在我想在执行任何其他操作之前从project2执行main方法. 我没有看到我在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” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
