Apache Ant

想读Spring源码?先从这篇「 极简教程」开始吧...

强颜欢笑 提交于 2020-04-09 22:05:20
为什么要阅读源码?这是一个有趣的问题,类似的问题还有,为什么要看书?为什么要爬山? 这也是一个哲学问题,我想每个人都有不同的答案,下面我是对阅读源码好处的一些思考。 (PS:也欢迎你在评论区留言补充) 阅读源码的好处 1.知其然知其所以然 这是一句 IT 人都很熟悉的话,在开源软件越来越多,并且升级越来越快的今天,如果说还有什么是重要的,那一定是知道它(开源软件)的核心原理和执行流程,这样就能为我们快速定位并修复问题提供宝贵的时间。 2.让自己变得更加优秀 学习源码可以让我们站在巨人的肩膀上,你可以学习源码中的优秀编码技巧和巧妙的设计思路,以及设计模式的落地应用,还有一些经典的编码规范和命名规则等。以此来约束和改进自己的编程代码,才能写成更好的代码。 3.找到更好的工作 在日益竞争激烈的面试中,尤其是在大厂的面试中,对于源码的考察非常看重,只有了解和熟悉这些源码,才能获得自己想要的 offer。 那既然阅读源码有这么多的好处,我们该如何开始呢? 如何阅读源码? 阅读源码的实现思路是这样的,首先我们需要下载 Spring 源码,然后把 Spring 的源码导入到 IDE 中,然后再编译 Spring 源码,再以添加 Module 的方式添加测试代码,再把 Spring 源码部分引入到 Module 中,此时我们就可以使用调试功能进入 Spring 框架的内部

使用maven-pom进行依赖管理与自动构建

99封情书 提交于 2020-04-06 03:52:33
使用maven-pom进行依赖管理与自动构建 使用maven-pom进行依赖管理与自动构建 一、让我们先了解一下maven 1.maven是优秀的依赖管理工具 2.maven是优秀的构建工具 3.maven是约定大于配置、简单易学的工具 二、pom基本结构 1.概览 2.项目坐标 3.package标签 4.项目间关系 5.dependencies标签 6.dependencyManagement标签 7.Properties标签 三、配置构建任务 1.maven构建的生命周期 2.插件的“构建阶段” 3.build标签 4.profiles标签 5.project标签下的build标签 5.Reporting标签 使用maven-pom进行依赖管理与自动构建 最后编辑于 :pencil: : {docsify-updated} 一、让我们先了解一下maven 1.maven是优秀的依赖管理工具 随着开发生态环境的不断发展,几乎所有的java应用都会使用第三方的类库,尤其是在这个开源的世界里, java应用依赖管理已经很难再由人工完成——依赖管理包括解决依赖传递、版本冲突、依赖臃肿等问题。 maven通过 groupId 、 artifactId 、 version 形成的坐标定位系统能准确的定位每一个构件(artifact), 开发者可以通过在pom文件中列出所依赖的构件的坐标

Zookeeper源码编译(Zookeeper 3.4.11)并IDEA启动

那年仲夏 提交于 2020-04-05 17:55:34
一、 准备工作 1.下载Ant并安装 由于Zookeeper是由Ant编译,需下载Ant并安装配置 下载地址:https://ant.apache.org/bindownload.cgi 2.安装Ant: 解压: 配置环境变量: Path D:\devople\apache-ant-1.10.6\bin 输入ant -version验证: 出现Unable to locate tools.jar. Expected to find it in xxx 是由于本地JAVA_HOME未配置,配置完JAVA_HOME就可以了。 再次验证: 至此Ant安装成功。 3.下载Zookeeper源码 下载地址: https://github.com/apache/zookeeper https://github.com/apache/zookeeper 由于地址连接是最新版本的Zookeeper源码,本次选用的是Zookeeper 3.4.11版本。 下载zip文件。 解压: 二、编译Zookeeper源码 ant eclipse 编译 编译出错: 下载ant-eclipse-1.0.bin.tar.bz2失败 解决办法: 将bulild.xml中的 get src="http://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse

JDK-MVN-ANT-GRADLE

放肆的年华 提交于 2020-03-27 17:42:37
3 月,跳不动了?>>> #JDK wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz tar -zxvf jdk-8u202-linux-x64.tar.gz mv jdk1.8.0_202 /usr/local/jdk #MVN wget https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz tar -zxvf apache-maven-3.6.3-bin.tar.gz mv apache-maven-3.6.3 /usr/local/maven #ANT wget http://mirror.bit.edu.cn/apache/ant/binaries/apache-ant-1.10.7-bin.tar.gz tar -zxvf apache-ant-1.10.7-bin.tar.gz mv apache-ant-1.10.7 /usr/local/ant #GRADLE #https://services.gradle.org/distributions/gradle-6.3-all.zip wget https://services

基于QT的简易计算器_Android应用

我们两清 提交于 2020-03-24 11:02:33
3 月,跳不动了?>>> 该计算器属于Qt入门的一个实战,Qt是一个强大跨平台的框架,本项目通过Android SDK、NDK、ANT和JDK与QT作为完整的IDE进行开发,实现能在安卓8.0.0系统上跑的APP。 项目前需要配置安卓编译环境,稍微有点麻烦,参考:(三篇很有对比) https://www.cnblogs.com/CLXiao-1029/p/7292094.html https://blog.csdn.net/hechao3225/article/details/52982443 https://blog.csdn.net/wikichan/article/details/77679783 如果只用编译桌面应用程序,则直接用Qt。 因为安卓界面与Qt设计界面存在像素差异,因此采用代码化实现界面。手机端界面如下: 竖屏: 横屏: 还没学Qml,所以界面不堪入目,将就一下,主要是逻辑代码。 项目中用了1个QLCDNumber和20个QPushButton,水平布局嵌套在垂直布局中,把垂直布局作为主界面。项目中最难的地方在于小数的处理。如果显示器使用QLineEdit也许会简单一些。 项目地址: https://gitee.com/feistel/qt_for_android_calculator 来源: oschina 链接: https://my.oschina.net

centos7 mysql5升级到mysql8 遇到GroupBy的坑

和自甴很熟 提交于 2020-03-17 20:03:48
某厂面试归来,发现自己落伍了!>>> ERROR 1055 (42000): Expression #7 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'postscan.verifyDelayLog.auditor' which is not functionally dependent on columns in GROUP BY clause; this is incompatible withsql_mode=only_full_group_by 在mysql8.0以上的版本中,对于 group by 的这种聚合操作,如果在select 中的列,没有在group by 中出现,那么这个SQL是不合法的,因为列不在group by的从句中,所以对于设置了这个mode的数据库,在使用group by 的时候,就要用MAX(),SUM(),ANT_VALUE()的这种聚合函数,才能完成GROUP BY 的聚合操作,那么话说回来了,如何关闭呢? 经过我们一番百度之后,获取的结果是关于 only_full_group_by 小编亲测了一遍百度有关的帖子。发现基本都满足不了,会报错。 so 给出如下解决方案 在/etcmy.conf中增加如下命令 [mysqld] sql_mode

为什么使用Gradle代替Ant或Maven? [关闭]

天涯浪子 提交于 2020-03-13 14:39:34
另一个针对Java的构建工具到底能给我带来什么? 如果您在其他工具上使用Gradle,为什么? #1楼 Gradle将乐趣重新投入了构建/组装软件。 我在整个职业生涯中都使用ant来构建软件,并且我一直认为开发工作中实际的“ buildit”部分是必不可少的。 几个月前,我们公司对不使用二进制存储库(也就是将罐子检入vcs)感到厌倦,因此我承担了调查此事的任务。 从常春藤开始,因为它可以用螺栓固定在蚂蚁上,所以运气不佳就可以像我想要的那样发布我的内置文物了。 我去了maven,用xml破解了,为一些简单的辅助库工作了出色的工作,但是在尝试捆绑准备部署的应用程序时遇到了严重的问题。 花费了相当长的时间搜索谷歌插件和阅读论坛,并且为我难以使用的各种插件下载了数万亿个支持罐。 最终,我获得了胜利(这时变得非常痛苦,并烦恼“这不应该那么难!”) 但是从第一天起,我的情绪开始好转。 我要去某个地方。 我花了两个小时才能迁移我的第一个ant模块,而构建文件基本上什么也没有。 轻松安装一个屏幕。 最大的“哇”是:用xml构建 脚本 ,这有多愚蠢? 声明一个依赖项需要一行的事实对我很有吸引力->您可以轻松地在一页上看到某个项目的所有依赖项。 从那时起,我始终如一地前进,对于迄今为止我遇到的每个问题,都有一个简单而优雅的解决方案。 我认为这些是原因: groovy对于Java开发人员而言非常直观

play framework 如何支持多数据源

帅比萌擦擦* 提交于 2020-03-12 19:33:19
有段时间没有写博客了,但今天又写一篇了,主要是因为这事有一丝自己的思考和动手实践,所以就记录下来了。 现有的问题: play 1.2.4 两台数据库服务器,但是play1.2.4 并不支持同时连接两台数据库服务器,如何解决这个问题? 问题的解决步骤: 1: 研究play是如何连接上一台数据库服务器的。 play 是通过db这个module来完成数据库相关的操作的。 主要流程 配置文件 ----> 构建DataSource ---->Ejb3Configuration -----> EntityManagerFactory -----> EntityManager --------> JPA 2: 解决问题的办法 2.1 修改现有module来实现支持多数据源,网上搜到关于此类的解决方法比较多,然后通过 JPA.em("datasourse") 来切换数据源。 当然这存在相当大的问题,一是不支持JPA的操作,二是即使实现了,现有代码需要修改的地方太多太多,三是根本没有能力来修改这个module。 2.2 将现有module的功能复制一份用来实现连接第二台服务器的功能。当然我选择了后者 3: 实现的步骤 3.1: db 文件夹复制一份 3.2: 修改了db1文件中相关文件的包名。 3.3 修改了获取的配置项 3.4 : 修改了enhance部分的功能 3.5 反复测试几次(10来次)

2020 Java 技术趋势

可紊 提交于 2020-03-07 15:45:45
引言 在比较了两个最新的行业调查报告以后,我们得出了今年排名前三的 Java IDE、框架、构建工具和最受欢迎的 JVM 语言。不仅如此, Snyk 和 JRebel 的调查问卷中也包含了最常用的 Java 版本。结果不出意外,还 有什么理由反对版本升级呢? 安全公司 Snyk 刚刚发布了 JVM 2020 年度 生态系统报告。 我们就此机会,将调查结果与 Java 开发工具公司 JRebel 一月中旬发布的 2020 Java 开发人员生产力报告进行了比较。 Snyk 报告:snyk.io/blog/jvm-ecosystem-report-2020/ JRebel 报告:jrebel.com/blog/2020-java-technology-report 让我们一起来看看目前最流行的 Java IDE 和 JVM 语言,以及公司是否会选择升级生产环境的 Java 版本。 Java IDE 前三名 首先了解一下大家开发 Java 的主力 IDE。 IntelliJ IDEA 在两份报告中以较大优势胜出。在 Snyk 的调查中,有 62% 的受访者正在使用 IntelliJ IDEA;在 JRebel 的报告中,这一数字甚至更高,为82%。 两项调查中的第二名都归属于 Eclipse(Snyk: 20%,JRebel: 24%)。 第三名的局势不太明朗: Snyk

如何从命令行启动Android模拟器?

那年仲夏 提交于 2020-03-03 13:47:05
我在Mac上,从终端开始进行Android开发。 我已经成功创建了 HelloWorld 项目,现在我正在尝试从Android模拟器中的命令行运行它。 哪个命令为我的HelloWorld项目运行模拟器? 我的PATH中已经有了Android工具和平台工具。 编辑: 如何告诉模拟器从命令行运行我的HelloWorld项目? 我已经用ant构建了这个项目。 #1楼 在这里, 您可以通过命令行检查执行此命令的选项: emulator -avd avd_name [-option [value]] ... [-qemu args] 例如,我使用它如下所示: emulator -avd ICS_ARM -wipe-data -no-boot-anim -cpu-delay 0 #2楼 打开命令提示符并转到 <android-Home>\\sdk\\tools>emulator -avd <AVD_NAME> 这里 "emulator" 是用于打开 Android虚拟设备 的命令。 #3楼 如果您严格尝试从命令行运行模拟器,请在OSX中尝试此操作。 "/Applications/Android Studio.app/sdk/tools/emulator" -avd <NAMEOFDEVICE> -netspeed full -netdelay none 您可以通过向.bash