我正在按照指南如何使用Jenkins签署Android apk.我已经使用KSTOREPWD和KEYPWD参与了Jenkins的工作.Jenkins的作业配置(Build-> Execute shell)的一部分是获取这些参数并将它们存储为环境变量:
export KSTOREPWD=${KSTOREPWD}
export KEYPWD=${KEYPWD}
...
./gradlew assembleRelease
Run Code Online (Sandbox Code Playgroud)
问题是当构建结束时,任何人都可以访问构建"控制台输出"并查看输入的密码; 部分输出:
08:06:57 + export KSTOREPWD=secretStorePwd
08:06:57 + KSTOREPWD=secretStorePwd
08:06:57 + export KEYPWD=secretPwd
08:06:57 + KEYPWD=secretPwd
Run Code Online (Sandbox Code Playgroud)
所以我想在export
命令输出之前抑制回声并在export
命令后重新启用echo .
我正在尝试学习docker,我对数据量实际存在的位置感到困惑.
我正在使用Docker Desktop for Windows.(Windows 10)
在文档中,他们说在对象上运行docker inspect将为您提供源代码:https://docs.docker.com/engine/tutorials/dockervolumes/#locating-a-volume
$ docker inspect web
"Mounts": [
{
"Name": "fac362...80535",
"Source": "/var/lib/docker/volumes/fac362...80535/_data",
"Destination": "/webapp",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
]
Run Code Online (Sandbox Code Playgroud)
但我没有看到这个,我得到以下内容:
$ docker inspect blog_postgres-data
[
{
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/blog_postgres-data/_data",
"Name": "blog_postgres-data",
"Options": {},
"Scope": "local"
}
]
Run Code Online (Sandbox Code Playgroud)
谁能帮我?我只是想知道我的数据量实际存在于我的主机上的位置?如果是这样,我怎么能找到它的路径?
使用案例:记录显示给用户的错误消息.
但是,您不希望日志中的消息依赖于用户设备的区域设置.另一方面,您不希望仅为您的(技术)日志记录更改用户设备的区域设置.这可以实现吗?我在stackoverflow上找到了几个可能的解决方案:
但是,它们都会导致更改设备的区域设置(直到下一次配置更改).
无论如何,我目前的解决方法是这样的:
public String getStringInDefaultLocale(int resId) {
Resources currentResources = getResources();
AssetManager assets = currentResources.getAssets();
DisplayMetrics metrics = currentResources.getDisplayMetrics();
Configuration config = new Configuration(
currentResources.getConfiguration());
config.locale = DEFAULT_LOCALE;
/*
* Note: This (temporiarily) changes the devices locale! TODO find a
* better way to get the string in the specific locale
*/
Resources defaultLocaleResources = new Resources(assets, metrics,
config);
String string = defaultLocaleResources.getString(resId);
// Restore device-specific locale
new …
Run Code Online (Sandbox Code Playgroud) 当传递诸如Intent.putExtra("myName",myName)之类的额外内容时,额外名称的约定是什么?
即:如果在两个活动之间传递数据,两者都会在id"myName"下放置/提取数据,但是我应该在任何地方硬编码"myName",还是将值保存在R.values.string中?
TL; DR有没有办法将代码导入Jenkinsfile
本地存储库(除了load
步骤)?
我已经体验到,对于复杂的构建而言,它Jenkinsfile
变得笨重而且不易维护.
既然构建作业是代码,那么使用与其他代码相同的方法会很棒.也就是说,我想将它分成更小(更易于维护)的单元并对它们进行单元测试.
load
步骤:允许从存储库加载groovy 脚本.Jenkinsfile
并将此库导入Jenkinsfile
?与为共享库描述的目录结构类似,我希望在单个存储库中具有以下内容.
(root)
+- someModule
| +- ...
+- jenkins # Classes/Scripts used by Jenkins in a separate module
| +- src # Groovy source files
| +- org
| +- foo
| +- Bar.groovy # for org.foo.Bar class
| +- test …
Run Code Online (Sandbox Code Playgroud) 我正在尝试运行sonar-runner来一次分析多个Java项目.根据文档,只需sonar-project.properties
为每个项目创建一个文件.但是我不清楚我在哪里放置这些sonar-project.properties文件.
我试图在$SONAR_RUNNER_HOME/conf
文件夹中添加多个.properties文件,但是跑步者似乎没有拿起它们.它只能看到sonar-project.properties文件.
关于如何为多个项目运行声纳 - 跑步者的任何建议?
java.util.zip.GZIPOutputStream
没有为其底层的压缩级别提供构造函数参数或setter Deflater
.
有办法解决这个问题,如所描述这里,例如:
GZIPOutputStream gzip = new GZIPOutputStream(output) {
{
this.def.setLevel(Deflater.BEST_COMPRESSION);
}
};
Run Code Online (Sandbox Code Playgroud)
我使用此GZIPped 10G文件,与使用预设相比,它的大小没有减少一位 DEFAULT_COMPRESSION.
这个问题的答案是,在某些情况下,设置级别可能无法按计划运行.为了确保,我还尝试创建一个新的:Deflater
this.def = new Deflater(Deflater.BEST_COMPRESSION, true);
Run Code Online (Sandbox Code Playgroud)
但是文件大小不会减少......
他们没有提供访问Deflater
级别的原因吗?
或者上面的代码示例有问题吗?
deflater级别是否有效?
编辑:感谢您的评论.
文件可以进一步压缩吗?
它是一个UTF-8文本文件,使用默认压缩从10G压缩到10M.因此,在不知道压缩级别的细节的情况下,我估计它可以进一步压缩.
DEFAULT_COMPRESSION
和之间的时差BEST_COMPRESSION
?
我没有时间创造真正可靠的数据.但是我执行了每个压缩级别大约五次的代码,两者大约需要相同的时间(2分钟+/- 5秒).
文件大小gzip -v9
?gzip创建的文件比java创建的文件小15KB.因此,对于我的具体用例,不值得再深入研究这个主题.
但是,上述三个基本问题仍然存在.有没有人使用更高的压缩级别成功减少文件GZIPOutputStream
?
带有kubectl get pod
命令的Init容器用于获取其他pod的就绪状态.
打开Egress NetworkPolicy后,init容器无法访问Kubernetes API : Unable to connect to the server: dial tcp 10.96.0.1:443: i/o timeout
. CNI是Calico.
尝试了几个规则,但它们都没有工作(服务和主机主机IP,不同的CIDR掩码):
...
egress:
- to:
- ipBlock:
cidr: 10.96.0.1/32
ports:
- protocol: TCP
port: 443
...
Run Code Online (Sandbox Code Playgroud)
或使用命名空间(默认和kube系统命名空间):
...
egress:
- to:
- namespaceSelector:
matchLabels:
name: default
ports:
- protocol: TCP
port: 443
...
Run Code Online (Sandbox Code Playgroud)
看起来ipBlock
规则只是不起作用,命名空间规则不起作用,因为kubernetes api是非标准pod.
可以配置吗?Kubernetes是1.9.5,Calico是3.1.1.