如果项目较大,需要尽可能跳过无关痛痒的环节(比如自己本地编译、使用的话,可能没必要编译javadoc)、只要最终jar的时候,可以用下面命令
mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true
如果项目较大,需要尽可能跳过无关痛痒的环节(比如自己本地编译、使用的话,可能没必要编译javadoc)、只要最终jar的时候,可以用下面命令
mvn clean package install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Drat.skip=true -Dcheckstyle.skip=true
google guava使用教程系列(3)- 前置条件检查
原文地址:[https://github.com/google/guava/wiki/PreconditionsExplained])(https://github.com/google/guava/wiki/PreconditionsExplained)
简而言之,guava提供了一系列检查参数的方案,个人感觉一般,实际业务场景中对于参数判断自己写可能比这种封装更方便。
官方举的例子:
checkArgument(i >= 0, "Argument was %s but expected nonnegative", i);
checkArgument(i < j, "Expected i < j, but %s >= %s", i, j);
大致有如下几类:
http://ifeve.com/google-guava-preconditions/有翻译,但翻译不全,建议github上的原版wiki。看名字基本能猜到方法用途,看个人喜好吧,我个人倒是更喜欢apache commons里的校验方法,比如StringUtils.isEmpty()
本文仅展示总体配置,具体注解用法请另行搜索、查询。
</pre> <pre><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <!-- https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-annotations --> <dependency> <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-annotations</artifactId> <version>2.0.8</version> </dependency> <!-- http://localhost:18004/doc.html --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.8.8</version> </dependency> <!-- Swagger用了高版本的 --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>28.0-jre</version> </dependency></pre> <pre>
一台主节点,一台从节点
注意,集群配置完成前建议不要启动单个ES实例。
原因:默认参数启动会以单实例方式启动,创建各种文件夹、文件,可能干扰后续集群配置。
cluster.name: tipdm-es #es集群名称
node.name: es-node1 #es节点名称,每个节点的名称不能相同
node.master: true #指定该节点是否有资格被选举成为master,默认是true
node.data: true #指定该节点是否存储索引数据,默认为true。
Continue reading »
默认情况下,如果在mac终端中执行shell脚本,会弹出窗口展示脚本执行输出。
工作中需求:执行shell脚本,不能展示输出。
解决:
问了下谷歌,搜索出如下答案,亲测可用。
不要在Set中使用null,或者把null作为map的键值。使用特殊值代表null会让查找操作的语义更清晰。
如果你想把null作为map中某条目的值,更好的办法是 不把这一条目放到map中,而是单独维护一个”值为null的键集合” (null keys)。Map 中对应某个键的值是null,和map中没有对应某个键的值,是非常容易混淆的两种情况。因此,最好把值为null的键分离开,并且仔细想想,null值的键在你的项目中到底表达了什么语义。
如果你需要在列表中使用null,并且这个列表的数据是稀疏的,使用Map<Integer, E>可能会更高效,并且更准确地符合你的潜在需求。
此外,考虑一下使用自然的null对象——特殊值。举例来说,为某个enum类型增加特殊的枚举值表示null,比如java.math.RoundingMode就定义了一个枚举值UNNECESSARY,它表示一种不做任何舍入操作的模式,用这种模式做舍入操作会直接抛出异常。
如果你真的需要使用null值,但是null值不能和Guava中的集合实现一起工作,你只能选择其他实现。比如,用JDK中的Collections.unmodifiableList替代Guava的ImmutableList
大多数情况下,开发人员使用null表明的是某种缺失情形:可能是已经有一个默认值,或没有值,或找不到值。例如,Map.get返回null就表示找不到给定键对应的值。
Continue reading »
建议使用pinyin4j,作为老牌的拼音转汉字解决方案,个人感觉比较可靠。小站用这个应该够用了。
可以参考该帖子:使用 pinyin4j API 将汉字转换为拼音 (学习笔记)
hutool工具包中有一个PinyinUtil工具类,目前已被弃用,不推荐使用,因为某些汉字可能会被转错,比如下图中的“馨”:
主要参考这篇官方文档:
https://www.rabbitmq.com/monitoring.html
有如下接口:
RabbitMQ常用命令汇总
安装过程略。
注意按照顺序,必须先启动节点
rabbitmq-server -detached #后台启动节点
rabbitmqctl start_app #启动RabbitMQ应用服务, Starts the RabbitMQ application.
工作里打算将代码从svn迁移到git,但svn毕竟用了一段时间,提交记录、tag、release等信息希望还能继续保留。
git官方本身就给了一个教程,参见: Git与其他系统-迁移到Git
教程本身就交代了前因后果,我就不再赘述,基本按照流程走就可以,我这里只是说下我的步骤以及遇到的坑。