开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
Computer Science

Maven 3 进行安装

什么是 Maven 在了解Maven之前,我们先来看看一个Java项目需要的东西。首先,我们需要确定引入哪些依赖包。例如,如果我们需要用到commons logging,我们就必须把 commons logging的jar包放入classpath。 如果我们还需要 log4j,就需要把log4j相关的jar包都放到classpath中。这些就是依赖包的管理。 其次,我们要确定项目的目录结构。例如,src目录存放Java源码,resources目录存放配置文件,bin目录存放编译生成的.class文件。 版本 Maven 的版本越新越好。 在很多时候,请不要使用 Maven 3 以下的版本。3. 下载 在当前的运营环境下,针对 Windows 请下载:apache-maven-3.8.4-bin.zip 如果是在 Linux 的环境下,请下载 apache-maven-3.8.4-bin.tar.gz 下载的链接地址为:Maven – Download Apache Maven     解压 你可以将下载的压缩文件保存到你操作系统上的任何地方。 我们假设我们将解压的文件夹保存到目录中: D:\DKits\Maven 有关这个文件夹中的内容,请参考下面的图:     配置环境 进入你的 Windows 环境配置界面中然后选择 Environment Variables 在这里,我们创建一个名为 MAVEN_HOME 的变量,变量的值为你 Maven 安装的路径。     随后将你的 Maven 安装路径添加到你的 PATH 目录中。     检查安装环境 在 cmd 命令行工具中,运行 mvn -v 命令。 如果你能够看到下面的输出的话,则说明配置已经成功,并且可以开始用了。     C:\Users\huyuc>mvn -v Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d) Maven home: D:\DKits\Maven\bin\.. Java version: 11.0.11, vendor: Red Hat, Inc., runtime: C:\Program Files\RedHat\java-11-openjdk-11.0.11-1 Default locale: en_US, platform encoding: Cp1252 OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows C:\Users\huyuc> https://www.ossez.com/t/maven-3/13831#maven-installationwhat-is-the-maven-1

2021年12月14日 0Comments 920Browse 0Like Read more
Computer Science

OpenJDK 8 安装

通常 OpenJDK 8 和 11 都能互相编译和通用。 我们建议使用 11,但是如果你使用 JDK 8 的话也是没有问题的。 建议配置使用 OpenJDK,不建议使用 Oracle JDK,主要是因为版本问题。 OpenJDK is working, system doesn’t require install Oracle JDK. 下载 针对使用 OpenJDK,我们可以使用 RedHat 的编译版本来进行下载和安装。 下载地址为:Red Hat build of OpenJDK Download | Red Hat Developer 请针对你操作系统使用不同的版本,当然你也可以安装 Windows 的版本,通常没有什么问题。     安装 双击下载后的安装程序后进行安装。 通常你不需要对配置进行修改,使用默认配置单击 OK 就行。 版本和环境检查 运行下面的命令来检查安装 Java 的版本。 java -version 如果你能够看到你安装的版本的话,就说明配置已经成功了。 C:\Users\huyuc>java -version openjdk version "11.0.11" 2021-04-20 LTS OpenJDK Runtime Environment 18.9 (build 11.0.11+9-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.11+9-LTS, mixed mode) C:\Users\huyuc>   https://www.ossez.com/t/openjdk-8/13830  

2021年12月14日 0Comments 1155Browse 0Like Read more
Computer Science

Confluence 如何在页面中显示目录

在默认情况下,Confluence 是不能在页面中显示目录和当前页面中的内容导航的。 因此我们可以使用的是 Confluence 分区。     然后有上面几种分区方式。     选择你需要的分区后再添加必要的宏就可以了。 出现的分区效果图如下图所示。     上面就显示了 Confluence 的分区效果图。   https://www.ossez.com/t/confluence/13828

2021年12月14日 0Comments 994Browse 0Like Read more
Computer Science

Postman 如何修改工作空间的名称

因开发进程的需要,我需要修改一个工作空间的进程。 找了半天没有找到。 其实非常简单,选择你的工作空间后,单击名字就可以了。     上面有个小窍门的地方就是你需要把鼠标移动到工作空间的名字上面。   https://www.ossez.com/t/postman/13827

2021年12月14日 0Comments 777Browse 0Like Read more
Computer Science

Maven 如何打包 Spring Boot 项目打包的发布 Jar 名字

Spring Boot 打包的时候如果不进行配置的话将会在生成的包中添加版本名字。 如果你不希望在生成的包中添加版本名字的话,你需要在 maven 的 pom.xml build 部分添加: <finalName>mls-service</finalName> 这样打包成的 jar 包将会被命名为: mls-service.jar     如上图的配置。   https://www.ossez.com/t/maven-spring-boot-jar/13826

2021年12月14日 0Comments 724Browse 0Like Read more
Computer Science

Maven 如何打包 Spring Boot 项目

如果你使用的是 Maven 开发 Spring Boot 项目的话,在你打包可执行文件的时候,你首先需要导入 spring-boot-maven-plugin 插件。 请查看下面的代码: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.4.13</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build> 上面的代码在 Package 的时候将会把你的 Spring 项目打包成一个可以执行的 jar。     如上图显示的内容,然后再执行下面的命令来进行打包: mvn package 打包成功后就能在 target 目录中看到上面的 2 个文件了。     上面就是使用 maven 打包后的命令生成的可执行文件,你可以直接使用 java -jar 来执行。   https://www.ossez.com/t/maven-spring-boot/13825

2021年12月14日 0Comments 820Browse 0Like Read more
Computer Science

Git 如何清理敏感文本

有时候我们会在属性文件中添加数据库的连接参数等。 但是在提交的时候不小心将这些敏感连接参数和密码也提交到服务器上了。 虽然很多公司都有防火墙只能内部访问,但是还是非常不安全的。 这时候你需要一个 BFG Repo-Cleaner 这个工具了。 这个工具主要用于清理仓库中的敏感文本包括提交历史记录中的,同时也一并将历史记录清理。 下载 下载地址为:BFG Repo-Cleaner by rtyley ,你会下载一个 jar 的包。 假设我们需要清理仓库名称为:rets-io-client,你首先需要将这个仓库克隆到本地。 然后把下载的包放在和这个仓库同级的目录中。 假设我们的仓库地址为:D:\WorkDir\USRealEstate\Source-Code\rets-io-client 那么你可以将这个包放在:D:\WorkDir\USRealEstate\Source-Code 目录下面。 同时在 D:\WorkDir\USRealEstate\Source-Code 目录下面创建一个 passwords.txt 文件 运行命令 在控制台中运行下面的命令: java -jar bfg-1.14.0.jar --replace-text passwords.txt rets-io-client 将你需要替换的字符串放到 passwords.txt 文件中。 例如我们需要替换的密码为 jfnsV4yHsDYaX4x9 那么你需要将这个字符串添加到 passwords.txt 后再执行上面的命令。     运行后的结果如上图的内容。 如果你有多个字符串需要替换的话,可以重复上面的操作。 在完成上面的所有替换后,进入仓库分别执行下面的 2 条 git 命令。 git reflog expire --expire=now --all 和 git gc --prune=now --aggressive 如果一切都没有问题的话,再运行 git push 将修改推送到远程仓库中。 此时再查看你的提交记录,所有敏感字符串应该都被替换掉了。     在提交历史中的字符串也会被替换成不可见的字符了。   https://www.ossez.com/t/git/13822

2021年12月01日 0Comments 804Browse 0Like Read more
Computer Science

一次谈不上有点内卷的美东某金融公司面试

面试的时间是在 2021 年的 11 月初开始的。 从投递简历开始到拒绝一共经历了 4 轮,在第 4 轮代码的过程中被拒绝。 拒绝的理由是,提交的代码没有完成题目指定的目的,目前他们找到比我更牛逼的人了。 对这个理由,我只能是呵呵一笑,在本文的最后我会把题目和我的代码作为附件发出来,供有精力跑跑的同学去看看吧。 大家看看到底是不是这个原因?还是只能说这个团队是奇葩,其实我们也不能上升公司层面,可能就是这个团队是奇葩罢了。 相关背景 公司方向是做金融和资产管理的。 虽然公司是做金融和资产管理,但是并不是所有 IT 都和这个有关系的,应该是公司内部希望做一个处理项目等。 HR 是白人,相对来说还是比较好沟通,具体面试的人是印度人,谈不上难沟通,其实还是比较好说话的,整个面试的 1 个小时还是非常顺利。 在面试完成后的第二天,发了一个代码题目过来,希望我完成。 这个题目说是有 3 个小时去完成,其实是一个设计题目,并不需要在线代码,也没有完全的时间限制,具体自己掌握。 在提交代码后的 3 天,他们给出了上面的结论。 第一轮 —— 公司介绍和技术 第一轮是电话沟通,在投了简历后的不久,HR 有人联系我说约个时间来电话详细聊一下。 聊天的内容还是非常多的,主要有你曾经做过的想,Java 有关 OOP 的内容,多线程,关键字,设计模式等等。 多线程是如何进行控制和调试的,关键字有哪些,你是如何进行编码的。 个人感觉这部分的内容还是非常多的,你需要对 Java 的多线程和线程安全有些了解才能答得上来。 第二轮 —— 技术面试 这个部分是 Zoom 的在线视频面试。 这部分面试的人是一位印度女性,她的语言没有什么印度口音,发音还算是非常清晰。 在这部分中主要讨论了我曾经做的一些项目,和在这些项目中有些什么样的问题。 同时在这部分对 Java 数组的遍历有过一些讨论,这里主要还是讨论了线程安全的问题,比如说遍历上面会不会有线程安全的考虑等等。 整个过程还是非常轻松的,问题不大。 第三轮 —— 代码 出问题的地方在这轮。 其实这个也没有什么好说的下面就是他们代码要求的问题:     为了不找麻烦,我将内容截图了。 下面就是中文的土话解释了: 实现一个租车系统,使用的是 OOP。 这个系统允许完成对车的预订:给定的参数是车的类型,预订时间和天数。 车的类型有 3 种类型,同时使用 Unit 测试 今天再次阅读这个题目后,我的测试应该是完成了车的预订,因为题目没有说要对还车进行考虑和逻辑设计,所以我只做到了返回确认码。 我认为这个题目的主要目的是考察 OOP 的问题,而不是完成整改逻辑流程,因为题目来看并没有要求完成还车等逻辑流程。 代码请参考附件。 Demo-Cars-Rental-main.zip (41.6 KB) 本来这个代码是放在 GitHub 上的,为了不找麻烦,我就作为附件上传了。 运行结果为:     上面显示了完成预订后的确认码。 总结 针对上面的回复我的想法还是呵呵的。 这显然有点奇葩的回复,你出的这个题目的目的是什么呢?不就是要考察对 OOP 的使用和对象设计处理能力吗? 如果面试只是纠结这个逻辑是不是完成了,而毫不关心对面向对象的使用,框架的使用,设计能力,编译能力的考察的话,我只能说是有点奇葩了。 同学们,你们怎么看? 欢迎在下面留言,讨论。   https://www.ossez.com/t/topic/13820

2021年11月23日 0Comments 693Browse 0Like Read more
Computer Science

Junit 4 的 @Before 和 @BeforeClass 对比 Junit 5 @BeforeEach 和 @BeforeAll

概述 在本简短教程中,我们分别对 @Before、@BeforeClass、 @BeforeEach 和 @BeforeAll 注解来进行一些简短的说明和实践。 需要注意的是,针对 Junit 版本的不: JUnit 4 对应使用的是: @Before 和 @BeforeClass JUnit 5 对应使用的是: @BeforeEach 和 *@BeforeAll 虽然名字有所改变,但是目的是相同的,并且功能都是向对应的。 另外,与其完全相对的还有一个就是 @After 的注解。 让我们从 JUnit 4 开始 @Before 这个注解是在 JUnit 4 中使用的。 使用这个注解的意思就是在测试类中,每一个测试开始执行之前都需要执行这个注解标记的方法。 通常用在我们希望对所有测试在执行之前都需要执行的方法。 让我们先对一些值进行初始化: @RunWith(JUnit4.class) public class BeforeAndAfterAnnotationsUnitTest { // ... private List<String> list; @Before public void init() { LOG.info("startup"); list = new ArrayList<>(Arrays.asList("test1", "test2")); } @After public void teardown() { LOG.info("teardown"); list.clear(); } } 请注意,在这里我们还在后面添加了一个 @After 注解,这个注解的意思是在每一个测试执行后都会对列表进行清理。 现在,我们添加一些测试来检查我们 List 了列表的大小: @Test public void whenCheckingListSize_thenSizeEqualsToInit() { LOG.info("executing test"); assertEquals(2, list.size()); list.add("another test"); } @Test public void whenCheckingListSizeAgain_thenSizeEqualsToInit() { LOG.info("executing another test"); assertEquals(2, list.size()); list.add("yet another test"); } 在本测试用例中:**针对每一个测试方法,确保所有的测试环境是相同的对每一个测试都非常重要。**在本用例中,我们主要需要确保变量的初始化是完全相同的,这是因为每一个测试方法在执行的时候都会对初始化后的变量进行修改。 随后,我们对输出的数据进行查看的时候,我们会发现针对每一个测试方法在执行的时候 init 和 teardown 方法都会在测试执行之前执行一次。 ... startup ... executing another test ... teardown ... startup ... executing test ... teardown @BeforeClass 针对每次测试执行的之前都要执行的方法相比,我们希望使用 @BeforeClass 这个注解。 这个注解的意思是针对测试类中的所有测试方法,只执行一次。 针对一些开销比较大的方法,你可能希望在所有方法执行之前只执行一次,比如说数据库连接和启动某个系统,这个时候你就可以使用 @BeforeClass 这个注解来执行标记的方法了。 让我们来创建一个与上面相同的测试类,不同的是我们使用了不同的注解。 @RunWith(JUnit4.class) public class BeforeClassAndAfterClassAnnotationsUnitTest { // ... @BeforeClass public static void setup() { LOG.info("startup - creating DB connection"); } @AfterClass public static void tearDown() { LOG.info("closing DB connection"); } } 需要注意的是,**上面的这些方法必须是静态方法(static)**因为这些方法将会在 test 测试之前先行执行。 随后,让我们添加一些简单的测试: @Test public void simpleTest() { LOG.info("simple test"); } @Test public void anotherSimpleTest() { LOG.info("another simple test"); } 这次,如果你查看测试方法的输出后,你会看到我们标记的方法只在所有测试开始执行之前执行了一次。 控制台的输出如下: ... startup - creating DB connection ... simple test ... another simple test ... closing DB connection @BeforeEach 和 @BeforeAll @BeforeEac 和 @BeforeAll 是 JUnit 5 中的注解,这个注解与 JUnit 4 中的 @Before 和 @BeforeClass 是完全对应的。 这 2 个注解在 JUnit 5 中被重命名的原因主要是为了避免冲突。 你可以拷贝上面的方法,然后使用 JUnit 5 的注解来重新注解: @BeforeEach 和 @AfterEach @RunWith(JUnitPlatform.class) class BeforeEachAndAfterEachAnnotationsUnitTest { // ... private List<String> list; @BeforeEach void init() { LOG.info("startup"); list = new ArrayList<>(Arrays.asList("test1", "test2")); } @AfterEach void teardown() { LOG.info("teardown"); list.clear(); } // ... } 然后你可以对程序的输出日志进行查看,你会看到与 @Before 和 @After 注解是完全对应的: ... startup ... executing another test ... teardown ... startup ... executing test ... teardown 最后,你可以重新注解下 @BeforeAll 和 @AfterAll 再进行测试: @RunWith(JUnitPlatform.class) public class BeforeAllAndAfterAllAnnotationsUnitTest { // ... @BeforeAll public static void setup() { LOG.info("startup - creating…

2021年11月23日 0Comments 926Browse 0Like Read more
Computer Science

IntelliJ IDEA 如何针对 Java 项目创建 H2 数据库连接

有时候我们希望使用 IntelliJ IDEA 来查看下数据库中的数据情况,尤其是针对 H2 使用的数据库。 创建连接 首先单击数据库连接上面的 + 号。 然后选择 H2 数据库。 配置数据库参数 随后需要对数据库的连接参数进行配置。 如果你当前的数据库使用的是文件系统的数据库的话,那么你需要选择嵌入方式。 如果数据库的配置使用的是内存数据库的话,你可以针对的选择使用内存数据库。 然后在 URL 部分输入你的数据库配置参数。 随后单击 测试连接 来对连接进行测试。 如果没有问题的话,将会返回测试成功的结果。 查询数据 在完成上面的配置后,你可以重新打开数据库连接的窗口。 然后通过单击表格对数据进行查询。 对表格的查询结果将会显示在界面的左侧表格中。   https://www.ossez.com/t/intellij-idea-java-h2/13817

2021年11月23日 0Comments 791Browse 0Like Read more
1…118119120121122…304
Archives
  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,367)
    • Confluence (663)
    • Gradle (12)
  • U.S. (522)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1