Skip to content
Permalink
Browse files

feat: 0618 changes

  • Loading branch information...
alterhu2020 committed Jun 18, 2019
1 parent efc21e7 commit 49d240103a21b74ffae9c7fa3c9ba6c57eabe708
@@ -12,6 +12,9 @@ module.exports ={
title: '2019年归档',
collapsable: false,
children: [
'2019/06-17-what',
'2019/06-13-what',
'2019/06-12-what',
'2019/06-09-what',
'2019/06-02-what',
'2019/06-01-what',
@@ -47,13 +50,14 @@ module.exports ={
},
{
title: '优秀影视作品集',
collapsable: true,
path: '/blog/video/',
children: [
['video/chernobyl','【美剧】切尔洛贝利'],
['video/the-thunder','【大陆剧】破冰行动'],
['video/game-of-the-thrones','【美剧】权利的游戏(终结篇)']
],
collapsable: false,
path: '/blog/video/'
// children: [
// ['video/my-foot-will-carry-me', '【电影】极地重生'],
// ['video/chernobyl','【美剧】切尔洛贝利'],
// ['video/the-thunder','【大陆剧】破冰行动'],
// ['video/game-of-the-thrones','【美剧】权利的游戏(终结篇)']
// ],
},
{
title: '友情链接',
@@ -6,4 +6,20 @@ title: 6月9日整理

- 工具地址: http://www.thewindowsclub.com/

D
## PS 抠图

## 图片合并,抠图

1. 分别打开两张图片
2. 在其中一个图片上选择,图层-》新建-》 通过拷贝的图层 或者快捷键CTRL +J
3. 在右边选择刚刚拷贝的图层,拖动到第二个图片上
4. 设置第二个图片的画布大小,图像-》画布大小。。。
5. 在左边工具栏,选择移动工具,拖动图层到合适位置
6. 可以使用不同的选框工具,对图片进行裁剪,还是CTRL+J
7. 将左边的不同图层或者背景前面的小眼睛勾选掉,代表可见性,如果不勾选就可以看到你需要的图层。保存就好了

## springboot jar vs tomcat war

Hence the famous:

> 'Make JAR, not WAR.' — Josh Long
@@ -0,0 +1,108 @@
---
title: 6月12日整理
---

## 开始ionic + capacitor 开发混合移动应用

### com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed

1. 在Android studio中打开toggle view进行查看详细的信息发现如下:

```
> Task :capacitor-android:compileDebugJavaWithJavac FAILED
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\AndroidProtocolHandler.java:56: 错误: -source 1.6 中不支持 multi-catch 语句
} catch (ClassNotFoundException | IllegalAccessException | NoSuchFieldException e) {
^
(请使用 -source 7 或更高版本以启用 multi-catch 语句)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\Bridge.java:117: 错误: -source 1.6 中不支持 diamond 运算符
private Map<String, PluginHandle> plugins = new HashMap<>();
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\Bridge.java:461: 错误: -source 1.6 中不支持 multi-catch 语句
} catch(PluginLoadException | InvalidPluginMethodException | PluginInvocationException ex) {
^
(请使用 -source 7 或更高版本以启用 multi-catch 语句)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\BridgeActivity.java:39: 错误: -source 1.6 中不支持 diamond 运算符
private List<Class<? extends Plugin>> initialPlugins = new ArrayList<>();
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\JSArray.java:21: 错误: -source 1.6 中不支持 diamond 运算符
List<E> items = new ArrayList<>();
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\JSObject.java:34: 错误: -source 1.6 中不支持 diamond 运算符
List<String> keys = new ArrayList<>();
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\plugin\Filesystem.java:264: 错误: -source 1.6 中不支持 try-with-resources
try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
^
(请使用 -source 7 或更高版本以启用 try-with-resources)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\plugin\Geolocation.java:40: 错误: -source 1.6 中不支持 diamond 运算符
Map<String, PluginCall> watchingCalls = new HashMap<>();
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\plugin\notification\LocalNotification.java:110: 错误: -source 1.6 中不支持 diamond 运算符
List<LocalNotification> resultLocalNotifications = new ArrayList<>(notificationArray.length());
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\plugin\notification\LocalNotificationAttachment.java:42: 错误: -source 1.6 中不支持 diamond 运算符
List<LocalNotificationAttachment> attachmentsList = new ArrayList<>();
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\plugin\notification\NotificationAction.java:37: 错误: -source 1.6 中不支持 diamond 运算符
Map<String, NotificationAction[]> actionTypeMap = new HashMap<>();
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\plugin\notification\NotificationStorage.java:49: 错误: -source 1.6 中不支持 diamond 运算符
return new ArrayList<>(all.keySet());
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\Plugin.java:53: 错误: -source 1.6 中不支持 diamond 运算符
eventListeners = new HashMap<>();
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\PluginCall.java:234: 错误: -source 1.6 中不支持 diamond 运算符
List<Object> items = new ArrayList<>();
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\PluginHandle.java:17: 错误: -source 1.6 中不支持 diamond 运算符
private Map<String, PluginMethodHandle> pluginMethods = new HashMap<>();
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\PluginHandle.java:74: 错误: -source 1.6 中不支持 multi-catch 语句
} catch(InstantiationException | IllegalAccessException ex) {
^
(请使用 -source 7 或更高版本以启用 multi-catch 语句)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\util\HostMask.java:87: 错误: -source 1.6 中不支持 diamond 运算符
List<HostMask.Simple> masks = new ArrayList<>();
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
D:\GitRepository\yitieyilu.com\yanzhi-web\material-sharing\node_modules\@capacitor\android\capacitor\src\main\java\com\getcapacitor\WebViewLocalServer.java:96: 错误: -source 1.6 中不支持 diamond 运算符
tempResponseHeaders = new HashMap<>();
^
(请使用 -source 7 或更高版本以启用 diamond 运算符)
18 个错误
```


问题原因,没有正确配置gradle机器对应的Android sdk版本。
配置gradle环境变量:
- GRADLE_HOME =

> gradle会下载相关需要依赖的jar包,默认的本地存放地址是:C:/Users/(用户名)/.gradle/caches/modules-2/files-2.1
- GRADEL_USER_HOME = E:\GradleRepository (但是对于IDEA来说木有用(当然上面的环境变量还是要添加的),在IDEA中使用gradle需要修改Gradle的路径: Service Directory Path)

## 添加删除Android SDK

> 在Androidstudio集成的Android sdk中勾选或者不勾选然后选择apply进行删除添加操作。

## gradle 离线下载

gradle工程没有会找文件 gradle/wrapper/gradle-wrapper.properties 里面的相关配置,下载对应的gradle包从如下配置:
`distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip`, 所以每个gradle工程记得配置这个参数。
一次下载后后面就不会再下载了。记得配置`GRADLE_USER_HOME`环境变量。
@@ -0,0 +1,69 @@
---
title: 6月13日整理
---

## capacitor搭建及其踩坑

1.`package.json`中加入以下四个必须的依赖,我就是因为稍加了一个`@capacitor/cli`导致`app`模块中的`compileSdkVersion`是27,而其他的模块更新的确实28,注意!!! 如下配置:

```json
"@capacitor/android": "^1.0.0",
"@capacitor/core": "^1.0.0",
"@capacitor/cli": "^1.0.0",
"@capacitor/ios": "^1.0.0",
```
2. 配置相应的gradle环境,例如环境变量GRADlE_HOME,GRADLE_USER_HOME,配置idea中的`service directory path`为自定义的gradle路径,配置`capacitor root path/android/app/gradle/wrapper/gradle-wrapper.properties`,设置里面的`distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip` 为自己的设置的目录。

3. 直接编译报错`point to the same directory in the file system.Each module must have a unique path.` ,解决方法: 将项目android文件下的 ***.iml 文件删掉,重新导入编译即可
4. android sdk这里我们使用的`@capacitor/core`=1.0.0, 所以它支持的Androidsdk是28,所以我们记得配置Androidstudio 中sdk只有一个API 28版本的。
5. `npx cap sync`是用户安装了新的cordova插件后更新同步新的插件到工程里面。而`npx cap copy`主要就是每次的web工程build后将对应的dist目录复制到对应的assets目录下面。
6. `Android 9.0 WebView无法加载页面报错net:ERR_CLEARTEXT_NOT_PERMITTED`,从Android 9.0(API级别28)开始,默认情况下禁用明文支持。因此http的url均无法在webview中加载。
> 在`AndroidManifest.xml`文件中的`application`标签添加`android:usesCleartextTraffic="true"`
```
<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
<uses-permission android:name="android.permission.INTERNET" />
<application
...
android:usesCleartextTraffic="true"
...>
...
</application>
</manifest>
```
7. ionic 切换页面时会添加`ion-page-invisible`,导致页面白屏,参考问题:
8. vue阻止冒泡到父级节点的事件 `@click.stop`:
```
<div v-for="(image,index) in currentImages"
:key="image.src" @click="previewImage(image, index)">
<li class="weui-uploader__file"
:style="{ backgroundImage: `url(${image.src})`}"
>
<ion-icon name="ios-close-circle" class="weui-close-icon" @click.stop="removeImage(image, index)"></ion-icon>
</li>
</div>
```
9. cordova phone call打电话代码: `location.href='tel:13052113519' `或者 `window.open('tel:13052113519')`
10. 离线存储解决方案: `localForage`
11. `promise`, `async`和`await`的讲解
参考: https://www.cnblogs.com/CandyManPing/p/9384104.html
1. async 告诉程序这是一个异步,awiat 会暂停执行async中的代码,等待await 表达式后面的结果,跳过async 函数,继续执行后面代码
2. async 函数会返回一个Promise 对象,那么当 async 函数返回一个值时,Promise 的 resolve 方法会负责传递这个值;当 async 函数抛出异常时,Promise 的 reject 方法也会传递这个异常值
3. await 操作符用于等待一个Promise 对象,并且返回 Promise 对象的处理结果(成功把resolve 函数参数作为await 表达式的值),如果等待的不是 Promise 对象,则用 Promise.resolve(xx) 转化
### 例子参考
1. https://github.com/nklayman/vue-cli-plugin-capacitor/blob/master/index.js
2. https://github.com/pietrovieira/Vuejs-Ionic4-Ionic-Capacitor/blob/master/src/App.vue
3. [sample app using capacitor vuejs and ionicv4 components](https://github.com/aaronksaunders/icon-vue/blob/master/src/components/Login.vue)
4. [Mobile app built with Vue.js, Ionic 4(beta), and wrapped by Capacitor](https://github.com/Balintataw/restaurant-mobile-app)
@@ -0,0 +1,83 @@
---
title: 6月17日整理
---


## zookeeper 和dubbo整合

### zookeeper 单机安装配置

> 参考文章: https://blog.csdn.net/pucao_cug/article/details/71240246
- 下载安装,解压缩tar.gz到目录: `/opt/apache-zookeeper-3.5.5`
- 进入`cnf`目录复制一份配置文件: ` sudo cp zoo_sample.cfg zoo.cfg`
- 创建日志目录: `sudo mkdir /logs/zookeeper && chmod 777 -R /logs`
- 修改`zoo.cfg`配置信息:
```python
# The number of milliseconds of each tick
# 它用来控制心跳和超时,默认情况下最小的会话超时时间为两倍的 tickTime ,就是minSessionTimeout=
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
# 集群配置,此配置表示,允许 follower (相对于 leader 而言的“客户端”)连接并同步到 leader 的初始化连接时间,它以 tickTime 的倍数来表示。当超过设置倍数的 tickTime 时间,则连接失败。
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
# 集群配置,此配置表示, leader 与 follower 之间发送消息,请求和应答时间长度。如果 follower 在设置的时间内不能与leader 进行通信,那么此 follower 将被丢弃。
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
# 存储内存中数据库快照的位置
dataDir=/opt/apache-zookeeper-3.5.5/data
# 这个操作将管理机器把事务日志写入到“ dataLogDir ”所指定的目录,而不是“ dataDir ”所指定的目录。这将允许使用一个专用的日志设备并且帮助我们避免日志和快照之间的竞争
dataLogDir=/logs/zookeeper
# the port at which the clients will connect
# 客户端连接的端口
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
# 这个操作将限制连接到 ZooKeeper 的客户端的数量,限制并发连接的数量,它通过 IP 来区分不同的客户端。此配置选项可以用来阻止某些类别的 Dos 攻击。将它设置为 0 或者忽略而不进行设置将会取消对并发连接的限制。
maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
```
-- 配置环境变量:`sudo nano /etc/profile`:
> 配置环境变量的目的是为了直接只用zookeeper中bin目录下的命令,如果不配置zookeeper的home路径,并不影响zookeeper启动
```
export ZOOKEEPER_HOME=/opt/apache-zookeeper-3.5.5
export PATH=$ZOOKEEPER_HOME/bin:$PATH
```
-- 启动服务`/opt/apache-zookeeper-3.5.5/bin/zkServer.sh start`
-- 查看服务是否启动: `/opt/apache-zookeeper-3.5.5/bin/zkServer.sh status`

-- 启动开机自启动: `sudo nano /usr/lib/systemd/system/zookeeper.service `

```
[Unit]
Description=zookeeper
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/opt/apache-zookeeper-3.5.5/bin/zkServer.sh start
ExecReload=/opt/apache-zookeeper-3.5.5/bin/zkServer.sh restart
ExecStop=/opt/apache-zookeeper-3.5.5/bin/zkServer.sh stop
[Install]
WantedBy=multi-user.target
```

### zookeeper启动问题

执行`/zkServer.sh start`,看到启动正常,但是执行`zkServer.sh status`确报: `Error contacting service. It is probably not running`.这说明并没有启动成功.我们可以通过bin目录下面的`zookeeper.out`来查看问题原因
@@ -25,16 +25,17 @@ title: 关于博客
- [Spring OAuth2](https://github.com/spring-projects/spring-security-oauth2-boot)
- [Spring Schedule]()
- [Spring Elasticsearch](https://github.com/spring-projects/spring-data-elasticsearch)
- [Spring Mybatis Plus(Mybatis)](http://mybatis.plus/guide)
- [Spring Mybatis Plus](http://mybatis.plus/guide)
- [Spring Redis](https://github.com/spring-projects/spring-data-redis)
- [Spring RabbitMQ](https://github.com/spring-projects/spring-amqp)
- [ShardingSphere JDBC](https://shardingsphere.apache.org/document/current/cn/manual/sharding-jdbc/configuration/config-spring-boot/)
- [flowable-engine](https://github.com/flowable/flowable-engine)
- [Dubbo RPC](http://dubbo.apache.org)
- [pinpoint](https://github.com/naver/pinpoint)
- [Hutools (国人开源的)](https://www.hutool.cn/docs/)
- [Hutools (国人开源)](https://www.hutool.cn/docs/)
- [Google Guava & Apache Commons](https://github.com/google/guava/wiki)

#### Containers
### Containers

- [Tomcat 9](https://tomcat.apache.org/)
- [Nginx Config](https://nginxconfig.io)

This file was deleted.

This file was deleted.

0 comments on commit 49d2401

Please sign in to comment.
You can’t perform that action at this time.