小编Gab*_*yas的帖子

Gradle编译测试但不运行它们

我想运行一个Gradle构建来编译测试(src/test/java目录中的JUnit测试)但不运行它们.

./gradlew build编译并运行测试,./gradlew build -x test而不编译测试.我也尝试过./gradlew build -x testClasses,但这并不好 - 它构建并运行测试.

有没有办法实现这个目标?

gradle

8
推荐指数
1
解决办法
5979
查看次数

如何在Xcore中定义地图

根据EMF FAQ,可以在EMF中创建一个Map:

EMap基本上是java.util.Map $ Entry实例的List.因此,要创建Map,您需要首先按照以下步骤为地图条目建模:

  1. 创建一个名为[Type1]的EClass到[Type2] Map,其中[Type1]表示键的类型,[Type2]表示值的类型.
  2. 将新创建的EClass的Instance Class Name属性设置为java.util.Map $ Entry.
  3. 创建名为"key"的EAttribute或EReference,并为其设置EDataType或EClass.
  4. 创建一个名为"value"的EAttribute或EReference,并为其设置EDataType或EClass.

现在,当您使用此映射条目类作为其EClass创建一个EReference时,EMF代码生成器将检测此特殊情况并为您生成正确类型的EMap getter/setter,而不是正常的EList getter/setter.

我可以在Xcore模型中使用它吗?我不确定步骤#2在Xcore中是否可行,或者它是否支持地图.

eclipse-emf emf xcore

6
推荐指数
1
解决办法
363
查看次数

在 fat JAR 中包含源

我将 Gradle 用于一个简单的 Java 项目,并希望生成一个单一的 fat JAR,其中也包含源代码。

\n\n

我在以下位置准备了一个示例存储库: https: //github.com/szarnyasg/gradle-shadowjar-source。我尝试了这个build.gradle配置:

\n\n
plugins { id "com.github.johnrengelman.shadow" version "1.2.4" }\n\napply plugin: \'java\'\n\nshadowJar {\n    classifier = \'fat\'\n    manifest { attributes \'Main-Class\': \'org.example.MyMain\' }\n}\n\ntask packageSources(type: Jar) {\n    from sourceSets.main.allSource\n}\n\nartifacts.archives packageSources\n
Run Code Online (Sandbox Code Playgroud)\n\n

我可以用以下方法构建它:

\n\n
./gradlew clean build shadowjar\n
Run Code Online (Sandbox Code Playgroud)\n\n

这会在目录中产生两个 JAR 文件build/libs

\n\n
    \n
  • example-fat.jar- 没有来源的胖 JAR
  • \n
  • example.jar- 一个包含(仅)源代码的 JAR
  • \n
\n\n

Gradle Shadow 插件的文档指出

\n\n
\n

java在存在或插件的情况下groovy,Shadow 将自动配置以下行为:

\n\n

[...]

\n\n …

jar gradle shadowjar

5
推荐指数
1
解决办法
2787
查看次数

在 Spark Catalyst 中从一个逻辑计划转换为另一个逻辑计划

我使用 Spark Catalyst 来表示openCypher查询引擎ingraph的查询计划。在查询计划过程中,我想从某个逻辑计划(Plan1)转换为另一个逻辑计划(Plan2)。(我试图让问题保持简单,所以我在这里省略了一些细节。该项目是完全开源的,所以如果需要,我很乐意提供更多信息来说明为什么这是必要的。)

我能找到的最好的方法是递归使用transformDown。这是一个小示例,通过将每个实例替换为并将每个实例替换为 来从Plan1Nodes 转换为s 。Plan2NodeOpA1OpA2OpB1OpB2

import org.apache.spark.sql.catalyst.expressions.Attribute
import org.apache.spark.sql.catalyst.plans.logical.{LeafNode, LogicalPlan, UnaryNode}

trait Plan1Node extends LogicalPlan

case class OpA1() extends LeafNode with Plan1Node {
  override def output: Seq[Attribute] = Seq()
}
case class OpB1(child: Plan1Node) extends UnaryNode with Plan1Node {
  override def output: Seq[Attribute] = Seq()
}

trait Plan2Node extends LogicalPlan

case class OpA2() extends LeafNode with Plan2Node {
  override …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql

5
推荐指数
1
解决办法
1027
查看次数

ORDER BY子查询的UNION结果

我想计算多个子查询的UNION并使用ORDER BY对结果进行排序.

所以我想运行这个查询(用伪Cypher编写):

(RETURN 2 AS x
UNION
RETURN 1 AS x)
ORDER BY x
Run Code Online (Sandbox Code Playgroud)

并得到以下结果:

?????
?x  ?
?????
?1  ?
?????
?2  ?
?????
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?由于ORDER BY总是与单个WITH/ RETURN子句绑定,我认为这不可行,也不能想到一个好的解决方法.

neo4j cypher

3
推荐指数
1
解决办法
850
查看次数

如何删除节点的所有属性?

我试过了:

match (n:MyNode) remove n.*
Run Code Online (Sandbox Code Playgroud)

但这不起作用.上下文:我想基本上用新数据重新定义节点,而不是删除它(这意味着我也必须删除它的所有链接)并再次创建它,我想删除属性并设置我的新值.我不想只设置新值,因为应该删除不再使用的属性

顺便说一句,我知道我可以通过keys函数获取节点的属性,但我无法弄清楚如何将它用于我的目的:

match (n:MyNode) remove keys(n)
match (n:MyNode) remove n[keys(n)]
Run Code Online (Sandbox Code Playgroud)

不确定如何取消引用返回的数组以删除属性

neo4j cypher

1
推荐指数
1
解决办法
367
查看次数

在 cypher neo4j 中仅显示特定关系

有没有办法只获取 Cypher 查询中存在的节点和关系,而不获取节点之间的其他关系?

我们知道节点之间可以有许多不同类型的关系。但是,在分析过程中,我们只想查看特定类型的关系。剩下的就是杂乱。以电影数据库为例,让我们使用以下查询。

match (p:Person)-[:ACTED_IN]->(m:Movie) 
where p.name='Tom Hanks'
return p, m;
Run Code Online (Sandbox Code Playgroud)

在这个查询中,我们得到了 Tom Hanks 和他演过的所有电影的漂亮图表。然而,我们也得到[:DIRECTED]了电影“你做的那件事”的关系,这很有趣,但取决于你正在分析的内容,它会让人分心。我只想显示[:ACTED_IN]关系。使用下一个查询

match (p:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(d:Person)  
where p.name='Tom Hanks'
return p, m, d;
Run Code Online (Sandbox Code Playgroud)

我们对每部电影的导演都有很好的了解。不过,在这里,屏幕上杂乱无章的[:KNOWS]关系导致分心。

我知道有几个数据可视化产品可以做到这一点,但我们处于 POC 中,我们需要先获取数据库。如果我还必须添加数据可视化工具,那将更难销售。更难,但并非不可能出售。

目前,我使用的是 Neo4j 3.2,但很快就会升级到 3.3 进行实际演示。

neo4j cypher

1
推荐指数
1
解决办法
1311
查看次数