自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Gradle 任务访问文件的几种方式

例子:三种方式,使用task file{ // relative path File configFile = file('build.gradle') println 'relative path: ' + configFile // Using an absolute path configFile = file(configFile.absolutePath) println 'absolute path: ' + configFile.absolutePath + '

2020-06-29 19:09:07 116

原创 Gradle里Copy任务(task)的使用

例子:Copy myCopy = task(myCopy, type: Copy)myCopy.from 'src'myCopy.into 'target'myCopy.include('**/*.java', '**/*.xml') 执行之后,src文件夹里的所有.java和.xml都拷贝到target文件夹内了:另一种采用闭包的书写方式,更加简练:task myCopy(type: Copy)myCopy { from 'src' into 'target2' i

2020-06-29 11:48:45 107

原创 在Gradle里访问任务(task)的几种方式

在build.gradle里定义一个hello任务:输出:任务也可以通过tasks集合来访问:println tasks.hello.nameprintln tasks[‘hello’].nameprintln ‘–’tasks.each{ println it}输出:Configure project :hellohello–task ‘:buildEnvironment’task ‘:components’task ‘:dependencies’task ‘:depe

2020-06-29 11:20:35 101

原创 如何使用Gradle外部脚本进行项目构建

本文新建一个文件other.gradle, 内容如下:println "configuring $project"task hello { doLast{ println 'hello from other script' }} 然后在主构建脚本build.gradle里引用这个外部脚本:apply from: ‘other.gradle’执行输出:configuring root project ‘quickstart’hello from other script这

2020-06-28 19:36:55 70

原创 如何给Gradle添加属性和系统属性(System property)

在USER_HOME/.gradle目录的gradle.properties里维护自定义属性:gradlePropertiesProp=gradlePropertiesValuesystemProjectProp=shouldBeOverWrittenBySystemPropenvProjectProp=shouldBeOverWrittenByEnvPropsystemProp.system=systemValue build.gradle里维护如下内容:task printProps

2020-06-28 19:08:34 167

原创 Gradle的script API

当 Gradle 执行一个脚本时,它将脚本编译为一个实现了 Script 接口的类,这意味着所有由该Script 接口声明的属性和方法在脚本中均可使用。Gradle 的domain model中,所有增强的对象都可以允许用户定义额外属性,例如项目(project)、任务(task)和源码集(source set)等等。额外属性可以通过所属对象的 ext 属性进行添加,读取和设置。当然也可以使用 ext 块同时添加多个属性。看个例子:apply plugin: "java"ext { spri

2020-06-28 17:28:52 50

原创 Gradle标准project属性

Gradle 中构建脚本定义了一个项目(project)。在构建的每一个项目中,Gradle 创建了一个 Project 类型的实例,并在构建脚本中关联此 Project 对象。当构建脚本执行时,它会配置此 Project 对象:Project.java的位置:src/core-api/org/gradle/api(1) 在构建脚本中,所调用的任何一个方法,如果在构建脚本中未定义,它将被委托给 Project 对象。(2) 在构建脚本中,所访问的任何一个属性,如果在构建脚本里未定义,它也会被委托给

2020-06-28 16:27:43 68

转载 CK8和CK18的含义

CK8几乎全部阳性(>95%的病例阳性) :结直肠腺癌、上皮样间皮瘤、间皮瘤, NOS、上皮肌上皮癌、管囊性肾细胞癌、类癌、甲状腺滤泡性腺瘤、甲状腺滤泡性癌、甲状腺乳头状癌、食管鳞状细胞癌、腺样囊性癌、阑尾腺癌、恶性横纹肌样瘤、涎腺腺泡细胞癌、黏液表皮样癌、乳腺黏液癌、胚胎性癌、胰腺母细胞瘤、脊索瘤、涎腺类似于乳腺的分泌性癌、肾髓质癌、间皮瘤,双向分化、胆管癌、子宫内膜腺癌、乳腺Paget病、腺瘤样瘤, NOS、乳腺伴大汗腺分化的癌、乳腺浸润性癌,非特殊类型、小肠腺癌、前列腺基底细胞增生、黏液表皮

2020-06-28 16:20:37 124

转载 病理报告上的CgA+是什么意思

神经内分泌肿瘤有一种非常重要的肿瘤标志物,叫做嗜铬素A(ChromograninA,缩写为CgA),它是目前最有价值的神经内分泌肿瘤的通用标志物(无论是功能性还是非功能性神经内分泌肿瘤)。通过检测血清或血浆嗜铬素A水平可以提示患者是否罹患神经内分泌肿瘤,或者跟踪患者的治疗反应,甚至评估患者的预后。血清或血浆嗜铬素A检测的诊断敏感性和特异性在60%~95%之间。除了嗜铬素A这种通用肿瘤标志物,功能性神经内分泌肿瘤还可以通过检测其分泌的特殊激素来提示诊断,例如胃泌素瘤可以检测血清胃泌素水平,胰岛素瘤可以检测血清

2020-06-28 11:50:19 772

原创 Gradle入门 - 一个最简单的hello world级别的例子

在Gradle文件夹下面有个子文件夹samples/java/quickstart,里面包含了一个sample项目,用于学习如何用Gradle对其进行构建。项目工程层级结构如下:Gradle默认会从src/main/java 搜寻打包源码,在 src/test/java 下搜寻测试源码。并且 src/main/resources下的所有文件按都会被打包,所有 src/test/resources 下的文件 都会被添加到classpath用以执行测试。所有文件都输出到 build 下,打包的文件输出到

2020-06-27 19:02:35 49

原创 build.gradle里uploadArchives标签的实现原理

在uploadArchives后面添加一个2,执行gradle build, 遇到错误消息:A problem occurred evaluating root project ‘quickstart’.Could not find method uploadArchives2() for arguments [build_a2307i03s3k13jdug3afl2lin$_run_closure5@364def1a] on root project ‘quickstart’ of type or

2020-06-27 17:11:01 198 1

原创 build.gradle里test标签的实现原理

把build.gradle里的test标签的属性systemProperties末尾加个2:build报错:What went wrong:A problem occurred evaluating root project ‘quickstart’.Could not find method systemProperties2() for arguments [{property=value}] on task ‘:test’ of type org.gradle.api.tasks.test

2020-06-27 11:59:07 81

原创 build.gradle里dependencies标签页的实现原理

build.gradle里的dependencies标签页:如果把dependencies改成dependencies2, gradle build的输出会遇到错误消息:A problem occurred evaluating root project ‘quickstart’.Could not find method dependencies2() for arguments [build_a2307i03s3k13jdug3afl2lin$_run_closure3@21c69f73]

2020-06-27 11:32:44 227

原创 build.gradle里repositories的mavenCentral实现原理解析

如果把build.gradle里的mavenCentral改成mavenCentral2会发生什么事?错误消息:Could not find method mavenCentral2() for arguments [] on repository container of type org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.这个DefaultRepositoryHandler,到Gradle目录下搜索,找到了对应的

2020-06-27 09:33:32 166

原创 Gradle中的默认任务和任务依赖关系设置

使用关键字defaultTasks定义默认任务:defaultTasks 'clean', 'run'task clean { doFirst { println 'Default Cleaning!' }}task run { doFirst { println 'Default Running!' }}task other { doFirst { println "I'm not a default task!" }}执行g

2020-06-26 09:33:08 72

原创 Gradle中依赖任务产生的不同输出

task hello { println 'Hello task'}hello.doFirst { println 'Hello doFirst'}hello.doLast { println 'Hello doLast'}hello { println 'Another Hello'}hello { println 'third hello'}输出:用ext给task添加自定义属性:task hello { ext.myProperty =

2020-06-26 09:08:10 55

原创 Groovy中的任务的自定义属性设置

task hello { println 'Hello task'}hello.doFirst { println 'Hello doFirst'}hello.doLast { println 'Hello doLast'}hello { println 'Another Hello'}hello { println 'third hello'}输出:用ext给task添加自定义属性:task hello { ext.myProperty =

2020-06-25 19:28:51 77

原创 SAP CRM 产品主数据搜索的Max hit参数设置和硬编码

Created by Jerry Wang on Oct 02, 2016The product search max hit value in WebClient UI could be configured in SPRO:If the parameter above is not explicitly set, default value will be retrieved by ABAP code:There is still a hard coded limit although i

2020-06-25 19:10:19 80

原创 Gradle里指定任务之间的依赖关系

task hello() { println 'Hello world in hello'}task hello2(dependsOn: 'hello') { String someString = 'mY_nAmE' println "Original: " + someString println "Upper case: " + someString.toUpperCase()}task count(dependsOn: 'hello2') {

2020-06-25 19:06:03 81

原创 有道云笔记到简书的迁移工具

首先在有道云笔记里写文章,再用下列Java工具将文章所有的图片下载到本地:package youdao;import java.io.File;import java.util.ArrayList;import java.util.List;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.regex.Matcher;import java.ut

2020-06-25 16:42:42 89

原创 sublime text里添加对Gradle配置文件的支持

我用Sublime打开一个build.gradle文件时,默认是以纯文本的方式打开的:从这个链接下载https://github.com/koizuss/sublime-gradle解压之后,放到sublime text的Data\Packages文件夹下面:即可获得Gradle高亮语法显示:task hello { doLast { println 'Hello world!' }}命令行输入gradle -q hello, 输出:要获取更多Jer

2020-06-25 16:06:17 60

原创 Groovy里的绕过getter方法直接访问类属性的办法

代码:package jerry;class SomeGroovyClass { def field1 = 'ha' def field2 = 'ho' def getField1() { return 'getHa' }}def a = new SomeGroovyClass()println a.field1println a.field2println '------------------------------'printl

2020-06-25 11:53:08 42

原创 Groovy里的setProperty和getProperty重载用法

例子:package jerry;class SomeGroovyClass { def property1 = 'ha' def field2 = 'ho' def field4 = 'hu' def getField1() { return 'in getField1 dedicated method: getHa' } def getProperty(String name) { if (name != 'field3') { printl

2020-06-25 11:36:13 97

原创 Groovy里的运行时元数据编程(metata programming)

POGO - A Groovy object whose class is written in Groovy. It extends java.lang.Object and implements the groovy.lang.GroovyObject interface by default.Plain old Groovy object,用Groovy语言编写的原生类,继承自Java的java.lang.Object,实现了groovy.lang.GroovyObject接口。GroovyO.

2020-06-25 10:03:05 47

原创 Groovy里的日期处理

Groovy官网的文档:http://www.groovy-lang.org/groovy-dev-kit.htmlpackage jerry;def date = LocalDate.parse('Jun 3, 04', 'MMM d, yy')assert date == LocalDate.of(2004, Month.JUNE, 3)def time = LocalTime.parse('4:45', 'H:mm')assert time == LocalTime.of(4, 45,

2020-06-24 19:54:49 97

原创 ConEmu状态栏的设置介绍

ConEmu是一个Windows操作系统下命令提示行界面的多面板打开工具。如上图高亮区域,状态栏显示信息的配置可以在下图设置:我一般就设置为只显示进程id:要获取更多Jerry的原创文章,请关注公众号"汪子熙":...

2020-06-24 10:07:50 74

原创 使用Groovy代码执行本地操作系统命令的方法

看个例子,我在Groovy项目文件夹所在目录执行dir,得到如下输出:现在我希望用Groovy代码实现这个dir命令的执行效果,代码如下:def process = "cmd /c dir".execute() println "Found text ${process.text}"输出:Found text Volume in drive C is OSDisk Volume Serial Number is 4C6D-47B0 Directory of C:\

2020-06-24 09:57:47 96

原创 Eclipse卸载Groovy Development tool时,为什么要去查询hana.ondemand.com的资源?

问题记录下来:

2020-06-24 09:43:11 66

原创 Eclipse里Java项目设置Java编辑器版本的位置

今天打开Eclipse,发现我的Java项目里出现了这样一条警告信息:The compiler compliance specified is 1.8 but a JRE 11 is used右键单击Java项目,在属性里选择Java Compiler,选择Compiler compliance level:选择成本地安装的Java 11后警告信息消失:要获取更多Jerry的原创文章,请关注公众号"汪子熙":...

2020-06-24 09:41:19 67

原创 Groovy里读写本地文件的几种方式

方法1和方法2分别如下图红色和蓝色高亮所示:其中第八行的双引号包裹起来的变量代表GString,即JavaScript和ABAP里的字符串模板。代码:new File('c:\\temp', '1.txt').eachLine { line -> println line}new File('c:\\temp', '1.txt').eachLine { lineContent, lineNumber -> println "Line $lineNumber: $lineCont

2020-06-24 09:35:49 169

原创 用Groovy读取本地文件的代码

下面这些包默认已经被导入了,不需要使用import再次显式导入:java.io.*java.lang.*java.math.BigDecimaljava.math.BigIntegerjava.net.*java.util.*groovy.lang.*groovy.util.*Groovy的运行时方法调用抉择运行时,Groovy根据参数类型决定具体哪一个方法被执行。而Java恰恰相反,被调用的方法根据参数类型,在编译期间就已经定下来了。In Groovy, the methods

2020-06-23 20:24:27 61

原创 Groovy的本地安装和Eclipse插件的配置

从Groovy的官网下载Development kit:https://groovy.apache.org/download.html下载到本地,解压:把解压后的文件夹路径添加到环境变量里。主要是GROOVY_HOME和Path里加入%GROOVY_HOME%\bin两条记录。如果直接在命令行里输入groovy加上文件名,如果能够成功执行,说明环境变量配置没有问题了。还可以在Eclipse这种IDE里安装Groovy的开发插件。打开Eclipse,选择About,查看Eclipse的

2020-06-23 20:23:42 77

原创 SAP CRM 产品主数据搜索alternative ID type下拉菜单的渲染逻辑

Created by Jerry Wang, last modified on Oct 03, 2016When you choose “Alternative ID Type” in search Criteria view, the corresponding ID type will be displayed as drop down list automatically. How is this behavior implemented?The drop down list field is

2020-06-23 20:22:01 78

原创 如何创建自己的SAP CRM产品主数据search scenario

Created by Jerry Wang, last modified on Oct 03, 2016Technically it is possible to create your own search scenario, filter class and search tool, and put your custom search logic there. Then write another report to trigger search implemented by your own se

2020-06-23 20:21:11 56

原创 SAP CRM产品主数据搜索功能的With individual object搜索参数

Created by Jerry Wang on Oct 03, 2016By default this search parameter is not visible in search view.You have to configure it as visible explicitly in UI component workbench, configuration tab:However, you can probably find that in some other systems,

2020-06-23 20:20:35 66

原创 Groovy里使用Runnable实现多线程

代码1:package jerry;Runnable run = { println 'run in thread: ' + Thread.currentThread().getId() }run.run();println "main thread:" + Thread.currentThread().getId();// list.each { println it } // or list.each(this.&println)测试结果:直接调用Runnable的run方法

2020-06-23 19:14:36 111

原创 Groovy里使用CountDownLatch

Latch的字面意思:弹簧锁CountDownLatch是java.util.concurrent包里的一个同步工具类。CountDownLatch的构造函数,接收一个类型为整型的参数,代表CountDownLatch所在的线程,在执行await方法后能够返回,所需要在其他线程内调用其countDown方法的次数。测试代码和打印输出:timer.schedule新启动了一个线程,在新线程里调用countDown,而主线程执行await进入阻塞状态,待新线程调用一次countDown之后,主线程

2020-06-23 16:22:39 31

原创 一个中年程序员遇到突发情况的一些胡言乱语

这是Jerry 2020年的第58篇文章,也是汪子熙公众号总共第241篇原创文章。5月11日我发了一篇文章 可能要暂时停更一段时间,希望时间不会太长,我的初衷是不想无声无息地就停止更文,得给这个号的关注者们有个简短的交代。没想到文章发出来之后很多朋友在文章下留言,以及直接在微信上询问我的身体状况,这里统一向大家说声谢谢,感谢大家的关心。由于微信公众号的限制,只有前100条留言才能显示出来,我只能对余下留了言的朋友说声抱歉,你们的关心我都记在了心里。这几天对我来说感觉像几十年一样漫长,发生了一些

2020-06-17 16:33:17 185

原创 一个程序员经历的7小时全身麻醉

这是Jerry 2020年的第64篇文章,也是汪子熙公众号总共第246篇原创文章。Jerry幼年时上历史课,课本里对东汉时期,华佗发明的麻沸散的使用方法是这样介绍的:“若疾发结于内,针药所不能及者,乃令先以酒服麻沸散,既醉无所觉,因刳破腹背,抽割积聚。”Jerry也不知道麻沸散算不算是世界上最早的麻醉药剂,但根据我这一个多月凭借搜索引擎习得的半吊子医科知识来看,现实世界里根本不存在像麻沸散这样,仅凭口服就能让手术病人处于全麻状态,并且无需气管插管等护理措施的神奇药剂。传说当年曹操和Jerry一样,

2020-06-16 17:09:43 257

原创 脑部手术成功,只是万里长征走完了第一步

刚刚过去的2020年5月,是Jerry从出生到现在过得最痛苦,最煎熬,最无奈,最漫长的一个月。然而时间的车轮依旧不以人的意志为转移地滚滚向前,把5月份尘世间发生的种种悲欢离合辗得粉碎。再刻骨铭心的记忆,或许随着时间的流逝,也有逐渐淡忘的时候,所以我选择了通过文字记录,把那曾经的一幕幕永久地定格下来。人真是个矛盾体。未入院之前,每一位在华西入院中心录入了基本信息的患者,无时不刻都在等待自己手机响起铃声,传来工作人员通知入院的消息; 而手术结束之后,又巴不得早日出院。医院住院部真像一座围城。神经外科病

2020-06-11 17:52:12 396 2

提示
确定要删除当前文章?
取消 删除