使用 Toothpick DI 框架与 Java(仅)项目一起使用
Using the Toothpick DI framework be used with a Java (only) project
我开始了一个小型 概念验证 练习,使我们的 Toothpick DI framework 与现有的基于 Gradle 的 Java 项目相结合。我已经阅读了很多声明,您可以将 Toothpick 与 Java 一起使用(意思是 JRE、OpenJDK、JDK 或 JSE - 否 Android)...但是,我能够 check/work 通过的每个示例在某些时候都以某种方式、形状或 configuration
依赖于 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 继续在生成的符号下方添加小红线。至少它 运行s。 Netbeans 支持可能会更好。
我之前的实验着眼于牙签 Smoothie
,这是一个 Android 示例。作为智力练习有点有趣......
build.gradle
文件依赖于 Android。所以我尝试用模拟替代品来代替缺失的组件。该项目编译但找不到 (any) 生成的代码。
我现在会考虑至少有一个成功的 Java JRE/JDK 牙签项目示例“那里”。
更新一个
我决定从 另一端 解决这个问题,并查看常见的 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}"
结果 ...
这一步至少成功创建了一个
build/generated
文件夹
遗憾的是,到目前为止还没有生成输出。隧道尽头有光,我敢肯定。我会 post 在这里更新 if/as 我更接近 解决方案 。
学习实例 (GitHub)
我找到了一些 'reliable' 牙签示例。到目前为止,他们想要 Android 在某个地方。作为 Android 目标模块或使用相关依赖项。
- https://github.com/davidbcn/ToothpickWorkshop
- https://github.com/WarrenFaith/Toothpick-Sample
- https://github.com/wongcain/okuki
- https://github.com/search?l=Java&q=toothpick&type=Repositories
假定(或假设)一个纯 Java / Toothpick 项目可以在桌面或命令行上构建、调试和 运行;就我的 google 而言,它似乎不是一个受欢迎的选择 ...
--
你应该看看TP样本,它是纯净的Java。
https://github.com/stephanenicolas/toothpick/tree/master/toothpick-sample
Smoothie 实际上是 TP 的 android 特定部分。
我开始了一个小型 概念验证 练习,使我们的 Toothpick DI framework 与现有的基于 Gradle 的 Java 项目相结合。我已经阅读了很多声明,您可以将 Toothpick 与 Java 一起使用(意思是 JRE、OpenJDK、JDK 或 JSE - 否 Android)...但是,我能够 check/work 通过的每个示例在某些时候都以某种方式、形状或 configuration
依赖于 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 继续在生成的符号下方添加小红线。至少它 运行s。 Netbeans 支持可能会更好。
我之前的实验着眼于牙签 Smoothie
,这是一个 Android 示例。作为智力练习有点有趣......
build.gradle
文件依赖于 Android。所以我尝试用模拟替代品来代替缺失的组件。该项目编译但找不到 (any) 生成的代码。
我现在会考虑至少有一个成功的 Java JRE/JDK 牙签项目示例“那里”。
更新一个
我决定从 另一端 解决这个问题,并查看常见的 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}"
结果 ...
这一步至少成功创建了一个
build/generated
文件夹
遗憾的是,到目前为止还没有生成输出。隧道尽头有光,我敢肯定。我会 post 在这里更新 if/as 我更接近 解决方案 。
学习实例 (GitHub)
我找到了一些 'reliable' 牙签示例。到目前为止,他们想要 Android 在某个地方。作为 Android 目标模块或使用相关依赖项。
- https://github.com/davidbcn/ToothpickWorkshop
- https://github.com/WarrenFaith/Toothpick-Sample
- https://github.com/wongcain/okuki
- https://github.com/search?l=Java&q=toothpick&type=Repositories
假定(或假设)一个纯 Java / Toothpick 项目可以在桌面或命令行上构建、调试和 运行;就我的 google 而言,它似乎不是一个受欢迎的选择 ...
--
你应该看看TP样本,它是纯净的Java。
https://github.com/stephanenicolas/toothpick/tree/master/toothpick-sample
Smoothie 实际上是 TP 的 android 特定部分。