小编Jul*_*cia的帖子

是否可以设置超过2级的gradle项目?

我们已经使用gradle大约一年了,并且已经取得了一些成功.许多功能仍然有点不透明,但我们正在实现这一目标.我不确定我是否正确解决问题,所以我会继续提问:

我在gradle中看到的所有示例都有一个根项目和一个子项目.出于多种原因,我们想巩固我们的git项目.所有这些都是gradle项目,其中一些项目有gradle子项目.我们最终想要的是一个多层次的gradle结构.我们不希望改变所有这些项目的gradle设置,而是希望拥有一个管理所有项目和相应子项目的顶级gradle.我的第一次尝试表明,我无法拥有一个控制build.gradle来编排所有项目和子项目.难道我做错了什么?我是否遵循并固有地打破了范式?

这是我想要做的示例结构:

Top Project
  build.gradle
  Project
    build.gradle
    Sub Project
      build.gradle
      src
    Sub Project
      ...
  Project
    ...
Run Code Online (Sandbox Code Playgroud)

谢谢,我希望我没有错过文档中的一些明显的解释.

gradle

29
推荐指数
2
解决办法
8485
查看次数

为什么 MySQL 消耗这么多内存?

我有 mysql 5.6.36 数据库,其大小为 ~35G,在 CentOS 7.3 上运行,内存为 48G。

[ UPDATE 17-08-06] 我会在这里更新相关信息。

我看到我的服务器内存不足,即使有大约 48G 的 RAM 也会崩溃。例如,我无法让它在 24G 上运行。这种大小的数据库应该能够运行得少得多。显然,我缺少一些基本的东西。

[更新:17-08-05] 崩溃,我的意思是 mysqld 停止并重新启动,日志中没有任何有用的信息,除了从崩溃中重新启动。另外,有了所有这些记忆,我在恢复过程中遇到了这个错误:

[ERROR] InnoDB: space header page consists of zero bytes in tablespace ./ca_uim/t_qos_snapshot.ibd (table ca_uim/t_qos_snapshot)
Run Code Online (Sandbox Code Playgroud)

我的配置文件的相关部分看起来像这样 [ EDITED 17-08-05 添加缺失的行]:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
lower_case_table_names = 1
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
max_allowed_packet = 32M
max_connections = 300
table_definition_cache=2000
innodb_buffer_pool_size = 18G
innodb_buffer_pool_instances = 9
innodb_log_file_size = 1G
innodb_file_per_table=1

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Run Code Online (Sandbox Code Playgroud)

每个表使用文件是一个疏忽,我需要更改它(我有 6000 个表,其中大部分是分区的)。

运行一小会(一小时)后,mytop 显示: …

mysql

15
推荐指数
2
解决办法
2万
查看次数

Scala eclipse插件java.lang.ClassNotFoundException

我使用eclipse版本:3.7.2与Scala IDE for Eclipse 2.1.0.nightly-2_09-201203121521-6e8582e.java版本是1.6.0_31.操作系统是Ubuntu 11.10.

我已经找到了解决这个问题的方法,但我还没找到.我希望没有一个我错过的明显答案.

我有这个课(注意包):

package model.x.y

import org.scalatest.FunSuite
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner

@RunWith(classOf[JUnitRunner])
class GibberishTestSuite extends FunSuite {
  test("Check Gibberish") {
    assert("blah" === "blah")
  }
}
Run Code Online (Sandbox Code Playgroud)

我也使用gradle,源路径看起来像这样(注意包与目录层次结构不匹配):

.../src/test/scala/model/GibberishTest.scala
Run Code Online (Sandbox Code Playgroud)

Eclipse和gradle生成相应的类文件:

bin/model/x/y/GibberishTestSuite.class
build/classes/test/model/x/y/GibberishTestSuite.class
Run Code Online (Sandbox Code Playgroud)

这通过gradle运行良好,但是当我尝试在eclipse中运行时,我得到了

Class not found model.GibberishTestSuite
java.lang.ClassNotFoundException: model.GibberishTestSuite
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
Run Code Online (Sandbox Code Playgroud)

如果我将包更改为

package model
Run Code Online (Sandbox Code Playgroud)

这样目录层次结构和包名称匹配,那么我就可以在eclipse中运行单元测试了.在scala中,包结构和目录结构不匹配是合法的.但是,不匹配似乎让eclipse或插件混乱.

难道我做错了什么?我错过了一些配置细微差别吗?eclipse中不支持这种scala语言功能吗?它会在某个时候得到支持吗?

谢谢.

eclipse scala eclipse-plugin scala-ide

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

从gradle运行scala REPL?

是否有一种从gradle任务调用scala REPL的标准方法?有插件吗?我还没找到一个.我可以按照这个例子,但似乎有点过时了,我想知道是否有更好的方法:

http://gradle.1045684.n5.nabble.com/Reading-keyboard-input-td3073108.html

谢谢.

scala gradle

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

如何在postgres中设置同步流复制?

我正在尝试使用Postgres 9.1设置同步复制,但我无法让它工作.我能够配置流复制,但不能同步.我希望我没有错过任何明显的东西.我仔细阅读了管理指南中第17,18,14,25,26和29节的许多部分.

我正在运行ubuntu 12.04,我的主postgresql.conf在所有其他标准设置中都有这些:

listen_addresses = '*'              # what IP address(es) to listen on;
wal_level = archive                 # minimal, archive, or hot_standby
archive_mode = on                   # allows archiving to be done
archive_command = 'test ! -f /data/pgWalArchive/%f && cp %p /data/pgWalArchive/%f'
wal_keep_segments = 100             # in logfile segments, 16MB each; 0 disables ??? What should this be ???? 
max_wal_senders = 3                 # max number of walsender processes
Run Code Online (Sandbox Code Playgroud)

除了标准的东西之外,我的pg_hba.conf还有这个:

host    all             all             XX.6.35.0/24            md5
host    replication     postgres        XX.6.35.0/24            md5
Run Code Online (Sandbox Code Playgroud)

我的主数据库只有一个序列,所以它很小.我成功地在主服务器上创建了主服务器的备份并将其恢复:

sudo …
Run Code Online (Sandbox Code Playgroud)

database postgresql database-replication postgresql-9.1

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

添加节点时,为什么我的cassandra吞吐量没有提高?

这是一个新手问题.我曾尝试过做家庭作业,但我一直在努力学习cassandra如何像广告一样线性扩展.当我针对单个cassandra节点运行时,我得到合理的插入率.以下是一些相关的信息:

  • CentOS 6.5
  • java 1.7.0_71
  • cassandra 2.1.4二进制下载
  • 不同驱动器上的数据和提交日志
  • compaction_throughput_mb_per_sec:0
  • 10,000,000个插页
  • 插入率:~110K插入/秒
  • 还没有实现这些设置,因为我没有兴趣让事情变得像观察线性缩放一样快速.

我的键空间定义是这样的:

create keyspace nms WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 };
use nms;
CREATE TABLE RN(tableId int, sampleTime timestamp, sampleValue bigint, sampleStdev bigint, sampleRate bigint, tz_offset int,
       PRIMARY KEY (tableId, sampleTime));
Run Code Online (Sandbox Code Playgroud)

我的相关java代码看起来像这样(粗略地):

cluster = Cluster.builder().addContactPoint("138.42.229.240")
                .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.ANY))
                .withRetryPolicy(DefaultRetryPolicy.INSTANCE)
                .withLoadBalancingPolicy(new TokenAwarePolicy(new RoundRobinPolicy()))
                .build();
session = cluster.connect("nms");
batch = new BatchStatement();
statement = session.prepare("INSERT INTO RN" +
            "(tableId, sampleTime, sampleValue, sampleStdev, sampleRate, tz_offset)" + …
Run Code Online (Sandbox Code Playgroud)

cassandra

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