gpt4 book ai didi

java - 使用 Toothpick DI 框架与 Java(仅限)项目一起使用

转载 作者:行者123 更新时间:2023-11-30 06:09:18 26 4
gpt4 key购买 nike

我开始了一个小型的概念验证练习,让我们了解 Toothpick DI framework与现有的基于 Gradle 的 Java 项目。我读过很多关于你可以在 Java 中使用 Toothpick 的说法(意味着 JRE、OpenJDK、JDK 或 JSE - 没有 Android)...但是,我能够检查/处理的每​​个示例在某些时候都有一个以某种方式、形状或配置对 Android 的依赖。

到目前为止,最(部分)成功的努力是使用一个实验性的、一次性的 Android 模拟包,让我的 Java 项目至少可以无错误地编译。也就是说,它在解决任何应该生成的依赖项时出现空白,例如:

  • 生成的MemberInjectorRegistry
  • 生成的FactoryRegistry

Toothpick 示例项目本身以及更简单的可用示例都使用 Android 配置,并且通常不依赖于其他 Android 细节。

更新二

我前往Toothpick sample项目,一个Java项目

Tootpick wiki 和示例项目使用 Java 编译选项:

     compileJava {
options.annotationProcessorPath = configurations.annotationProcessor
options.compilerArgs = ['-Atoothpick_registry_package_name=experiments.toothpick',]
}

这给了我一个警告,结果是 Gradle 和插件不匹配。我需要使用 --refresh-dependencies 进行新的构建(提示:确保编译 TestsPackages)。

修复示例后,编译并通过单元测试。生成的文件位于 build/generated 下,我设法鼓励 Netbeans 通过以下方式找到它们:

 sourceSets {
generated {
java {
srcDirs = [ 'build/generated/source/apt/main' ];
}
}
}

遗憾的是,Netbeans 继续在生成的符号下添加小红线。至少它可以运行。 Netbeans 支持可能会更好。

我之前的实验着眼于 Toothpick Smoothie,它是一个 Android 示例。作为一种智力练习有点有趣......

build.gradle 文件依赖于 Android。所以我尝试用模拟替代品来代替缺失的组件。项目编译但找不到(任何)生成的代码。

我现在已经考虑过,“那里可能至少有一个成功的 Java JRE/JDK Toothpick 项目示例”。

更新一个

我决定从另一端解决这个问题,并查看常见的 Java 注释处理示例。据我所知,Gradle v4.7(我也认为 v4.6)是有效的。

在您的(子)项目中 build.gradle ...

    plugins {
id "net.ltgt.apt" version "0.15"
}
:

dependencies {
annotationProcessor (
dep_toothpickCompiler
)
:
}

dep_toothpickCompiler 之前定义为:

 //      Annotation Processor    
dep_toothpickCompiler = "com.github.stephanenicolas.toothpick:toothpick-compiler:${ver_toothpick}"

结果 ...

这一步至少成功创建了一个

  • 构建/生成文件夹

不幸的是,到目前为止还没有生成输出。我确信隧道尽头有光明。如果/当我接近解决方案时,我会在这里发布更新。

<小时/>

学习示例 (GitHub)

我已经确定了一些“可靠”的牙签示例。到目前为止,他们希望 Android 能出现在某个地方。作为 Android 目标模块或使用相关依赖项。

假设(或假设)纯 Java/Toothpick 项目可以在桌面上或从命令行构建、调试和运行;就我的谷歌搜索而言,它似乎不是一个受欢迎的选择......

--

最佳答案

你应该看看TP示例,它是纯Java的。

https://github.com/stephanenicolas/toothpick/tree/master/toothpick-sample

Smoothie 实际上是 TP 的 Android 特定部分。

关于java - 使用 Toothpick DI 框架与 Java(仅限)项目一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50613619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com