从来没有找到一个真正令人满意的解决方案。你怎么做呢?我正在寻找新方法的灵感。
对于上下文,假设我编写了一个生成器,该生成器使用项目资源并生成代码文件。但这可以是任何其他项目支持工具-验证程序,转换器,部署程序等。通常是手动触发的操作,这些操作不作为正常构建的一部分运行。
这类工具通常需要一些依赖项,而这些依赖项在运行时项目本身并不需要。
我过去应用或考虑过的策略:
答案和评论的启发
答案 0 :(得分:0)
我刚刚意识到maven和eclipse已经针对一个非常特定的“工具”(测试代码)完全解决了这个问题。
测试代码通常需要应用程序本身未使用的其他依赖项。
与创建一个单独的测试项目相反,人们显然投入了很多钱来将“测试/工具”基础结构保留在同一项目中:
因此,我强烈考虑将所有支持工具编程为“ junit测试用例”。
我打算为仅执行一个特定“测试用例”的团队创建并提交共享的junit启动配置,这将运行工具逻辑而不是进行测试。
我要解决的问题是避免在常规Maven测试阶段运行这些虚拟测试。
同样,我在写这篇文章时意识到,已经有另一个这样的系统:maven插件基础结构,它也具有单独的依赖项解析机制。尽管到目前为止,创建单独的项目来创建插件似乎是必要或正常的。我将研究编写和构建项目特定的maven插件的方法,而无需创建单独的项目。我正在考虑即时生成插件编译所需的pom.xml,并包括所有测试依赖项。