java - 通过在 Java 项目中导入库
问题描述
我正在寻找一个随机名称生成器,并在 GitHub 上找到了https://github.com/DiUS/java-faker 。那里说:
在 pom.xml 中,在中间添加以下 XML 节
<dependencies> ... </dependencies>
<dependency> <groupId>com.github.javafaker</groupId> <artifactId>javafaker</artifactId> <version>0.16</version> </dependency>"
我不熟悉 Maven 或 Gradle 或它的工作原理,Maven 的文档也没有真正帮助我将这个库导入到我在 Eclipse 中的 Java 项目中。
感谢您对我需要的文档/信息的任何指导(链接),以便了解如何通过 Maven 或 Gradle 使用此库。这真的有那么复杂吗?为什么我不能只下载库并将其添加到我的构建路径中?
解决方案
摇篮
- 确保通过运行安装 Gradle
gradle -version
。 - 为您的项目创建一个目录并导航到它。打开一个终端。
- 执行
gradle wrapper
。您将看到创建gradlew
的gradlew.bat
文件gradle
和.gradle
目录。从现在开始,您可以忘记全局 Gradle 安装,因为您可以使用 wrapper。即使没有安装 Gradle,也可以使用 Wrapper。 创建一个名为
build.gradle
. 这是 Gradle 中的项目描述符:plugins { id 'java' } repositories { jcenter() } dependencies { implementation("com.github.javafaker:javafaker:0.16") }
在 Eclipse 中导入项目。
马文
- 确保通过运行安装了 Maven
mvn -version
。 - 为您的项目创建一个目录并导航到它。
创建一个名为
pom.xml
或的文件build.gradle
。这是 Maven 中的项目描述符:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.your.company</groupId> <artifactId>app</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>com.github.javafaker</groupId> <artifactId>javafaker</artifactId> <version>0.16</version> </dependency> </dependencies> </project>
在 Eclipse 中导入项目。
这真的有那么复杂吗?
如您所见,不,它一点也不复杂!
为什么我不能只下载库并将其添加到我的构建路径中?
你可以。当您有数十个和数百个依赖项(具有自己的依赖项)时,这种方法就无法扩展。此外,现代软件不仅需要编译,还需要测试、打包、发布和分发。尽管您可以从 IDE 中完成大部分操作,但是……这种方法无法扩展。只是因为人们使用不同的 IDE。因为构建服务器上没有 IDE。因为当您稍微了解 Gradle 或 Maven 时,您会发现通过构建工具完成任务比通过菜单项更快。
快乐黑客!
推荐阅读
- ruby-on-rails - 如何将附加选项添加到带有一组要在 rails 中传递的 id 的选择标签
- javascript - Javascript 承诺链地狱
- r - 如何获得多变量逻辑回归模型(glm)的校准图?
- python - 套接字尝试连接异常
- google-apps-script - Gmail 自动回复脚本 - 如何设置条件时间并停止多个回复?
- docker - docker 卷中的文件未更新
- python - 当另一个选择小部件更改时,如何自动更新下拉选择小部件?(Python面板pyviz)
- css - 仅对 SVG 中的一条路径进行动画处理而不进行裁剪
- java - Wildfly 和 haproxy 之间的对话 - 无效的 PROXY 协议标头
- python - python-shapefile 将几何图形转换为纬度/经度