- 浏览: 2489780 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
nation:
你好,在部署Mesos+Spark的运行环境时,出现一个现象, ...
Spark(4)Deal with Mesos -
sillycat:
AMAZON Relatedhttps://www.godad ...
AMAZON API Gateway(2)Client Side SSL with NGINX -
sillycat:
sudo usermod -aG docker ec2-use ...
Docker and VirtualBox(1)Set up Shared Disk for Virtual Box -
sillycat:
Every Half an Hour30 * * * * /u ...
Build Home NAS(3)Data Redundancy -
sillycat:
3 List the Cron Job I Have>c ...
Build Home NAS(3)Data Redundancy
Code SonarQube 2019(1)Installation with default H2
We can find the downloads from here https://www.sonarqube.org/downloads/
And we can find scanner https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
Source Codes
https://github.com/SonarSource/sonarqube
https://github.com/SonarSource/sonar-scanner-cli
Download the file from these versions
> wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.1.zip
> wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.0.0.1744.zip
Unzip and file and place to the working directories
> unzip sonarqube-7.9.1.zip
> mv sonarqube-7.9.1 ~/tool/
> unzip sonar-scanner-cli-4.0.0.1744.zip
> mv sonar-scanner-4.0.0.1744 ~/tool/
> sudo ln -s /home/carl/tool/sonarqube-7.9.1 /opt/sonarqube-7.9.1
> sudo ln -s /opt/sonarqube-7.9.1 /opt/sonarqube
> sudo ln -s /home/carl/tool/sonar-scanner-4.0.0.1744 /opt/sonar-scanner-4.0.0
> sudo ln -s /opt/sonar-scanner-4.0.0 /opt/sonar-scanner
Check Java version
> java -version
java version "1.8.0_171"
According to https://blog.51cto.com/dadapeng/1934568
Need Database MySQL
> sudo apt update
> sudo apt install mysql-server
> sudo apt install mysql-client
Default root User
https://stackoverflow.com/questions/33991228/what-is-the-default-root-pasword-for-mysql-5-7
Check the root password
> sudo cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = ddHulNSEFzhUFvS1
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = ddHulNSEFzhUFvS1
socket = /var/run/mysqld/mysqld.sock
> mysql -u debian-sys-maint -pddHulNSEFzhUFvS1
Prepare Database Information
> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
> FLUSH PRIVILEGES;
Then I can use this command to connect to that
> mysql -h localhost -u sonar -psonar
Configure sonarque configuration
> cd /opt/sonarqube
> vi conf/sonar.properties
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
Add this to the ClassPath
export SONAR_HOME=/opt/sonarqube
export SONAR_RUNNER_HOME=/opt/sonar-scanner
export PATH="$PATH:$SONAR_HOME/bin:$SONAR_RUNNER_HOME/bin"
Start the Service
> bin/linux-x86-64/sonar.sh start
Check the logging and I get this error
WrapperSimpleApp: Encountered an error running main: java.lang.IllegalStateException: SonarQube requires Java 11+ to run
java.lang.IllegalStateException: SonarQube requires Java 11+ to run
at org.sonar.application.App.checkJavaVersion(App.java:93)
at org.sonar.application.App.start(App.java:56)
at org.sonar.application.App.main(App.java:98)
Solutions:
http://www.jenv.be/
Install jENV on Ubuntu
> git clone https://github.com/gcuisinier/jenv.git ~/.jenv
> echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
> echo 'eval "$(jenv init -)"' >> ~/.bash_profile
> . ~/.bash_profile
Check installation
> jenv versions
* system (set by /home/carl/.jenv/version)
> jenv --version
jenv 0.5.2-4-gd8ffd5b
I manually install JDK8 so
> jenv add /opt/jdk-1.8.0-171
oracle64-1.8.0.171 added
1.8.0.171 added
1.8 added
Download JDK 11 and JDK 12
https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html
Then I get file
jdk-11.0.4_linux-x64_bin.tar.gz
jdk-12.0.2_linux-x64_bin.tar.gz
Put all these in the working directory
> sudo ln -s /home/carl/tool/jdk-11.0.4 /opt/jdk-11.0.4
> sudo ln -s /home/carl/tool/jdk-12.0.2 /opt/jdk-12.0.2
> jenv add /opt/jdk-11.0.4
> jenv add /opt/jdk-12.0.2
> jenv versions
* system (set by /home/carl/.jenv/version)
11.0
11.0.4
12.0
12.0.2
1.8
1.8.0.171
oracle64-11.0.4
oracle64-12.0.2
oracle64-1.8.0.171
> jenv global 11.0
Check java version
> java -version
java version "11.0.4" 2019-07-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.4+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.4+10-LTS, mixed mode)
Start Sonar again
> bin/linux-x86-64/sonar.sh start
Exception:
2019.07.22 13:08:01 WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 143
Solution:
https://stackoverflow.com/questions/49128166/sonarqube-exits-with-143
Move out all the plugins
> cd /opt/sonarqube
> mv plugins/* ~/install/plugins/
Then it is working fine now
> bin/linux-x86-64/sonar.sh status
SonarQube is running (30432)
After few seconds, it stoped again…..
https://community.sonarsource.com/t/installing-sq-7-9-on-ubuntu-14-04-exit-value-es-143/11478
Cleaned the data and logs directories, still not working.
Does this matters in es.log
2019.07.22 14:53:42 DEBUG es[][i.n.u.i.CleanerJava9] java.nio.ByteBuffer.cleaner(): unavailable
java.lang.UnsupportedOperationException: sun.misc.Unsafe unavailable
at io.netty.util.internal.CleanerJava9.<clinit>(CleanerJava9.java:68) [netty-common-4.1.32.Final.jar:4.1
.32.Final]
https://blog.csdn.net/qq_35981283/article/details/81072852
> ulimit -Hn
65536
> sudo sysctl -p
vm.max_map_count = 262144
net.ipv4.ip_nonlocal_bind = 1
Try one older version
> wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.6.zip
> sudo ln -s /home/carl/tool/sonarqube-7.6 /opt/sonarqube-7.6
> sudo ln -s /opt/sonarqube-7.6 /opt/sonarqube
> vi conf/sonar.properties
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
It seems that it has something to do with the MySQL drivers. If I use default database setting H2 I guess, it will work.
Check document from here
https://docs.sonarqube.org/7.9/requirements/requirements/
https://docs.sonarqube.org/6.7/Requirements.html
It seems old version support MySQL, new version does not.
After all these, we can visit the page here
http://ubuntu-master:9000/about
We can login with default username and password admin/admin
After I create a sample JAVA project there, it asked me to run the maven command
> mvn sonar:sonar -Dsonar.projectKey=sillycat-websocket -Dsonar.host.url=http://ubuntu-master:9000 -Dsonar.login=adf305363a2cec4fa4311ea89317229ddd691991
It will scan and get a feeling about my JAVA codes.
Try the sample project
https://github.com/luohuazju/sillycat-jwtphp
For PHP project, we can have something similar
> sonar-scanner -Dsonar.projectKey=sillycat-jwtphp -Dsonar.sources=. -Dsonar.host.url=http://ubuntu-master:9000 -Dsonar.login=8118a943f3eb997399ecd9ad0891c3c7f46f8e21
On Mac OS, we can install the scanner as well.
> wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.0.0.1744.zip
Unzip and place that in the working directory
> mv sonar-scanner-4.0.0.1744 ~/tool/
> sudo ln -s /Users/hluo/tool/sonar-scanner-4.0.0.1744 /opt/sonar-scanner-4.0.0
> sudo ln -s /opt/sonar-scanner-4.0.0 /opt/sonar-scanner
Add to the path
export PATH=/opt/sonar-scanner/bin:$PATH
Check installation
> sonar-scanner --version
INFO: Scanner configuration file: /Users/hluo/tool/sonar-scanner-4.0.0.1744/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarQube Scanner 4.0.0.1744
INFO: Java 1.8.0_161 Oracle Corporation (64-bit)
INFO: Mac OS X 10.14.5 x86_64
Same command, works pretty well.
References:
https://www.jianshu.com/p/50496b75a7b0
https://www.jianshu.com/p/9766f0129581
https://blog.csdn.net/zdyueguanyun/article/details/79447701
https://blog.51cto.com/dadapeng/1934568
We can find the downloads from here https://www.sonarqube.org/downloads/
And we can find scanner https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
Source Codes
https://github.com/SonarSource/sonarqube
https://github.com/SonarSource/sonar-scanner-cli
Download the file from these versions
> wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.1.zip
> wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.0.0.1744.zip
Unzip and file and place to the working directories
> unzip sonarqube-7.9.1.zip
> mv sonarqube-7.9.1 ~/tool/
> unzip sonar-scanner-cli-4.0.0.1744.zip
> mv sonar-scanner-4.0.0.1744 ~/tool/
> sudo ln -s /home/carl/tool/sonarqube-7.9.1 /opt/sonarqube-7.9.1
> sudo ln -s /opt/sonarqube-7.9.1 /opt/sonarqube
> sudo ln -s /home/carl/tool/sonar-scanner-4.0.0.1744 /opt/sonar-scanner-4.0.0
> sudo ln -s /opt/sonar-scanner-4.0.0 /opt/sonar-scanner
Check Java version
> java -version
java version "1.8.0_171"
According to https://blog.51cto.com/dadapeng/1934568
Need Database MySQL
> sudo apt update
> sudo apt install mysql-server
> sudo apt install mysql-client
Default root User
https://stackoverflow.com/questions/33991228/what-is-the-default-root-pasword-for-mysql-5-7
Check the root password
> sudo cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = ddHulNSEFzhUFvS1
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = ddHulNSEFzhUFvS1
socket = /var/run/mysqld/mysqld.sock
> mysql -u debian-sys-maint -pddHulNSEFzhUFvS1
Prepare Database Information
> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
> FLUSH PRIVILEGES;
Then I can use this command to connect to that
> mysql -h localhost -u sonar -psonar
Configure sonarque configuration
> cd /opt/sonarqube
> vi conf/sonar.properties
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
Add this to the ClassPath
export SONAR_HOME=/opt/sonarqube
export SONAR_RUNNER_HOME=/opt/sonar-scanner
export PATH="$PATH:$SONAR_HOME/bin:$SONAR_RUNNER_HOME/bin"
Start the Service
> bin/linux-x86-64/sonar.sh start
Check the logging and I get this error
WrapperSimpleApp: Encountered an error running main: java.lang.IllegalStateException: SonarQube requires Java 11+ to run
java.lang.IllegalStateException: SonarQube requires Java 11+ to run
at org.sonar.application.App.checkJavaVersion(App.java:93)
at org.sonar.application.App.start(App.java:56)
at org.sonar.application.App.main(App.java:98)
Solutions:
http://www.jenv.be/
Install jENV on Ubuntu
> git clone https://github.com/gcuisinier/jenv.git ~/.jenv
> echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
> echo 'eval "$(jenv init -)"' >> ~/.bash_profile
> . ~/.bash_profile
Check installation
> jenv versions
* system (set by /home/carl/.jenv/version)
> jenv --version
jenv 0.5.2-4-gd8ffd5b
I manually install JDK8 so
> jenv add /opt/jdk-1.8.0-171
oracle64-1.8.0.171 added
1.8.0.171 added
1.8 added
Download JDK 11 and JDK 12
https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html
Then I get file
jdk-11.0.4_linux-x64_bin.tar.gz
jdk-12.0.2_linux-x64_bin.tar.gz
Put all these in the working directory
> sudo ln -s /home/carl/tool/jdk-11.0.4 /opt/jdk-11.0.4
> sudo ln -s /home/carl/tool/jdk-12.0.2 /opt/jdk-12.0.2
> jenv add /opt/jdk-11.0.4
> jenv add /opt/jdk-12.0.2
> jenv versions
* system (set by /home/carl/.jenv/version)
11.0
11.0.4
12.0
12.0.2
1.8
1.8.0.171
oracle64-11.0.4
oracle64-12.0.2
oracle64-1.8.0.171
> jenv global 11.0
Check java version
> java -version
java version "11.0.4" 2019-07-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.4+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.4+10-LTS, mixed mode)
Start Sonar again
> bin/linux-x86-64/sonar.sh start
Exception:
2019.07.22 13:08:01 WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 143
Solution:
https://stackoverflow.com/questions/49128166/sonarqube-exits-with-143
Move out all the plugins
> cd /opt/sonarqube
> mv plugins/* ~/install/plugins/
Then it is working fine now
> bin/linux-x86-64/sonar.sh status
SonarQube is running (30432)
After few seconds, it stoped again…..
https://community.sonarsource.com/t/installing-sq-7-9-on-ubuntu-14-04-exit-value-es-143/11478
Cleaned the data and logs directories, still not working.
Does this matters in es.log
2019.07.22 14:53:42 DEBUG es[][i.n.u.i.CleanerJava9] java.nio.ByteBuffer.cleaner(): unavailable
java.lang.UnsupportedOperationException: sun.misc.Unsafe unavailable
at io.netty.util.internal.CleanerJava9.<clinit>(CleanerJava9.java:68) [netty-common-4.1.32.Final.jar:4.1
.32.Final]
https://blog.csdn.net/qq_35981283/article/details/81072852
> ulimit -Hn
65536
> sudo sysctl -p
vm.max_map_count = 262144
net.ipv4.ip_nonlocal_bind = 1
Try one older version
> wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.6.zip
> sudo ln -s /home/carl/tool/sonarqube-7.6 /opt/sonarqube-7.6
> sudo ln -s /opt/sonarqube-7.6 /opt/sonarqube
> vi conf/sonar.properties
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
It seems that it has something to do with the MySQL drivers. If I use default database setting H2 I guess, it will work.
Check document from here
https://docs.sonarqube.org/7.9/requirements/requirements/
https://docs.sonarqube.org/6.7/Requirements.html
It seems old version support MySQL, new version does not.
After all these, we can visit the page here
http://ubuntu-master:9000/about
We can login with default username and password admin/admin
After I create a sample JAVA project there, it asked me to run the maven command
> mvn sonar:sonar -Dsonar.projectKey=sillycat-websocket -Dsonar.host.url=http://ubuntu-master:9000 -Dsonar.login=adf305363a2cec4fa4311ea89317229ddd691991
It will scan and get a feeling about my JAVA codes.
Try the sample project
https://github.com/luohuazju/sillycat-jwtphp
For PHP project, we can have something similar
> sonar-scanner -Dsonar.projectKey=sillycat-jwtphp -Dsonar.sources=. -Dsonar.host.url=http://ubuntu-master:9000 -Dsonar.login=8118a943f3eb997399ecd9ad0891c3c7f46f8e21
On Mac OS, we can install the scanner as well.
> wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.0.0.1744.zip
Unzip and place that in the working directory
> mv sonar-scanner-4.0.0.1744 ~/tool/
> sudo ln -s /Users/hluo/tool/sonar-scanner-4.0.0.1744 /opt/sonar-scanner-4.0.0
> sudo ln -s /opt/sonar-scanner-4.0.0 /opt/sonar-scanner
Add to the path
export PATH=/opt/sonar-scanner/bin:$PATH
Check installation
> sonar-scanner --version
INFO: Scanner configuration file: /Users/hluo/tool/sonar-scanner-4.0.0.1744/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarQube Scanner 4.0.0.1744
INFO: Java 1.8.0_161 Oracle Corporation (64-bit)
INFO: Mac OS X 10.14.5 x86_64
Same command, works pretty well.
References:
https://www.jianshu.com/p/50496b75a7b0
https://www.jianshu.com/p/9766f0129581
https://blog.csdn.net/zdyueguanyun/article/details/79447701
https://blog.51cto.com/dadapeng/1934568
发表评论
-
Stop Update Here
2020-04-28 09:00 266I will stop update here, and mo ... -
NodeJS12 and Zlib
2020-04-01 07:44 433NodeJS12 and Zlib It works as ... -
Docker Swarm 2020(2)Docker Swarm and Portainer
2020-03-31 23:18 316Docker Swarm 2020(2)Docker Swar ... -
Docker Swarm 2020(1)Simply Install and Use Swarm
2020-03-31 07:58 325Docker Swarm 2020(1)Simply Inst ... -
Traefik 2020(1)Introduction and Installation
2020-03-29 13:52 297Traefik 2020(1)Introduction and ... -
Portainer 2020(4)Deploy Nginx and Others
2020-03-20 12:06 383Portainer 2020(4)Deploy Nginx a ... -
Private Registry 2020(1)No auth in registry Nginx AUTH for UI
2020-03-18 00:56 379Private Registry 2020(1)No auth ... -
Docker Compose 2020(1)Installation and Basic
2020-03-15 08:10 331Docker Compose 2020(1)Installat ... -
VPN Server 2020(2)Docker on CentOS in Ubuntu
2020-03-02 08:04 403VPN Server 2020(2)Docker on Cen ... -
Buffer in NodeJS 12 and NodeJS 8
2020-02-25 06:43 339Buffer in NodeJS 12 and NodeJS ... -
NodeJS ENV Similar to JENV and PyENV
2020-02-25 05:14 419NodeJS ENV Similar to JENV and ... -
Prometheus HA 2020(3)AlertManager Cluster
2020-02-24 01:47 365Prometheus HA 2020(3)AlertManag ... -
Serverless with NodeJS and TencentCloud 2020(5)CRON and Settings
2020-02-24 01:46 294Serverless with NodeJS and Tenc ... -
GraphQL 2019(3)Connect to MySQL
2020-02-24 01:48 213GraphQL 2019(3)Connect to MySQL ... -
GraphQL 2019(2)GraphQL and Deploy to Tencent Cloud
2020-02-24 01:48 395GraphQL 2019(2)GraphQL and Depl ... -
GraphQL 2019(1)Apollo Basic
2020-02-19 01:36 279GraphQL 2019(1)Apollo Basic Cl ... -
Serverless with NodeJS and TencentCloud 2020(4)Multiple Handlers and Running wit
2020-02-19 01:19 267Serverless with NodeJS and Tenc ... -
Serverless with NodeJS and TencentCloud 2020(3)Build Tree and Traverse Tree
2020-02-19 01:19 267Serverless with NodeJS and Tenc ... -
Serverless with NodeJS and TencentCloud 2020(2)Trigger SCF in SCF
2020-02-19 01:18 255Serverless with NodeJS and Tenc ... -
Serverless with NodeJS and TencentCloud 2020(1)Running with Component
2020-02-19 01:17 240Serverless with NodeJS and Tenc ...
相关推荐
Code with me的吗Code with me的吗Code with me的吗Code with me的吗Code with me的吗Code with me的吗Code with me的吗Code with me的吗Code with me的吗Code with me的吗Code with me的吗Code with me的吗Code ...
Code with me Code with meCode with me Code with meCode with me Code with meCode with me Code with meCode with me Code with me
sample code; create an installation by using visual basic professional.
Begin to Code with Python By 作者: Rob Miles ISBN-10 书号: 1509304525 ISBN-13 书号: 9781509304523 Edition 版本: 1 出版日期: 2017-12-18 pages 页数: 1463 $39.99 This full-color book will inspire you to ...
1、官网下载myeclipse2019.4安装包 2、安装myeclipse 3、下载解压crack包 4、将解压后的crack包中patch文件夹下的内容全部拷贝到myeclipse安装路径下的plugin文件夹下(默认的路径为C:\Users\username\AppData\Local...
Visual Studio Code 1.69.1 (VSCodeSetup-arm64-1.69.1.exe) 适用于System Installer Windows 64位系统Arm芯片: 它是一个轻量级但功能强大的源代码编辑器,可在您的桌面上运行。它内置了对 JavaScript、TypeScript...
Sonar Code Quality Testing Essentials,sonarqube静态代码扫描工具培训说明文档
1-D FDTD code with simple radiation boundary conditions 有限差分代码
Code Generation with Rosyln is the first book to cover this new capability. You will learn how these techniques can be used to simplify systems integration so that if one system already defines ...
解决Windows7安装dotnetframework4.7.2证书问题:Installation failed with error code: (0x800B0109), "已处理证书,但无法建立到信任根颁发机构的证书链
Working Effectively With Legacy Code
`level` int(4) DEFAULT NULL COMMENT '级别: 0-国家 ,1-省, 2-市, 3-区/县, 4-街/镇, 5-社区/居委', PRIMARY KEY (`id`), KEY `name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC ...
Steema TeeChart Pro VCL FMX Source Code 2019.27.rar
SonarQube代码质量管理平台的安装
Replace Error Code With Exception
The Laws of Cryptography with Java Code.pdfThe Laws of Cryptography with Java Code.pdfThe Laws of Cryptography with Java Code.pdf
English | 2019 | ISBN: 1942878544 | 659 Pages | True PDF, EPUB, CODE | 790 MB Build your own low-level game engine in Metal! This book introduces you to graphics programming in Metal — Apple’s ...
In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned ...