我有一个简单的构建工具Multi-Project问题...
我有以下目录结构代表我的java sbt项目:
/project1
/project2
/project3
Run Code Online (Sandbox Code Playgroud)
所以所有项目共享一个共同的直接父文件夹.项目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")
Run Code Online (Sandbox Code Playgroud)
这样,project1和其他人之间存在依赖关系.
到目前为止一切都很好,一切正常.
但是现在我想在执行任何其他操作之前从project2执行main方法.当我从父(project1)执行"运行"任务时,我希望project2中的特定类执行其主要方法.我该怎么做呢?sbt文档解释说" 聚合意味着在聚合项目上运行任务也将在聚合项目上运行它. ":http: //www.scala-sbt.org/0.13.5/docs/Getting-Started/Multi -Project.html#聚合
我没有看到projet2上的主要课程已被执行.我还将它添加到project2的build.sbt中:
mainClass in (Compile, run) := Some("Main")
Run Code Online (Sandbox Code Playgroud)
该项目的目标是在Compiletime和运行时生成代码.Project2的工作是生成Java和Javascript代码.可以在构建其他项目之前生成.
那可能吗?如果没有,我将不得不独立于其他项目运行project2.
=]
我正在努力排序并限制mongodb中嵌入式数组的结果.这是场景:
我有一个帖子后评论结构,其中post包含一系列评论.我想获得一个注释列表,按createdAt排序并执行限制/偏移...有点像,给出一个帖子ID分页注释并将它们返回给我.=]
......这是一个结构样本:
{ "_id" : ObjectId("52707a234f2044b7f2d22083"),
"comments" : [{
"_id" : ObjectId("5270986b4f204f5dd51ada8a"),
"comment" : "asdfasdf asdfasdfa ",
"userid" : NumberLong(1),
"likes" : [ ],
"createdAt" : ISODate("2013-10-30T05:26:03.858Z")},
{
"_id" : ObjectId("527098714f204f5dd51ada8b"),
"comment" : "asdfasdf asdfasdfa ",
"userid" : NumberLong(1),
"likes" : [ ],
"createdAt" : ISODate("2013-10-30T05:26:09.425Z")
}
],
"createdAt" : ISODate("2013-10-30T03:16:51.745Z"),
"likes" : [ ],
"status" : "simbora!!",
"userid" : NumberLong(1)
}
Run Code Online (Sandbox Code Playgroud)
所以...我可以尝试这个查询:
db.post.aggregate([
{$match: {_id: new ObjectId("52707a234f2044b7f2d22083")}},
{$unwind: "$comments"},
{$sort: {"comments.createdAt": -1}},
{$limit: 2}
]);
Run Code Online (Sandbox Code Playgroud)
它给了我这个:
"result" : …
Run Code Online (Sandbox Code Playgroud)