我开发了一个Java实用程序库(类似于Apache Commons),我在各种项目中使用它.除了胖客户端,我还将它用于移动客户端(具有J9 Foundation配置文件的PDA).随着时间的推移,作为单个项目启动的库分布在多个包中.因此,我最终得到了许多功能,这在所有项目中并不是真正需要的.
由于这个库也用在一些移动/ PDA项目中,我需要一种方法来收集使用过的类并生成实际的专用jar.
目前在使用此库的项目中,我有Ant jar任务,从(从实用程序项目)生成专用jar文件(例如:my-util-1.0-pda.jar,my-util-1.0-rcp.jar)使用include/exclude jar任务功能.由于生成的jar文件的大小限制,对于移动项目,这通常是需要的.
现在迁移到Maven我只是想知道是否有任何最佳实践可以达到类似的目的.我考虑以下场景:
[1] - 除了主jar工件(my-lib-1.0.jar)之外,还在my-lib项目中使用Maven Jar插件使用分类器(例如:my-lib-1.0-pda.jar)生成单独/专用工件或Maven Assembly Plugin过滤/包含.我对这种方法不太满意,因为它污染了库,消费者需要(过滤器).
[2] - 为所有专门的客户端/项目创建额外的Maven项目,这将"包装""my-lib"并生成过滤的jar工件(例如:my-lib-wrapper-pda-1.0 ......等) .因此,这些包装器项目将包括过滤(以生成过滤的工件),并将仅依赖于"my-lib"项目,客户端项目将依赖于my-lib-wrapper-xxx-1.0而不是my- lib-1.0.这种方法可能看起来有问题,因为即使这样也会让"my-lib"项目完整(没有额外的分类器和工件),基本上会使项目数量增加一倍,因为对于每个客户端项目我都会有一个lib,只是为了收集所需的来自"my-util"库的类("my-pda-app"项目将需要一个"my-lib-wrapper-for-my-pda-app"项目/依赖项).
[3] - 在每个使用该库的客户端项目中(例如:my-pda-app)添加一些专门的Maven插件来修剪(当生成最终的工件/包时)不需要的类(例如:maven-assembly) -plugin,maven-jar-plugin,proguard-maven-plugin).
在"Maven方式"中解决此类问题的最佳实践是什么?
我有一个项目需要部署到多个环境(prod,test,dev).主要区别主要在于配置属性/文件.
我的想法是使用配置文件和覆盖来复制/配置专用输出.但是如果我必须使用专门的分类器生成多个工件(例如:"my-app-1.0-prod.zip/jar","my-app-1.0-dev.zip/jar")或者我应该为每个环境创建多个项目,一个项目?!
我应该使用maven-assembly-plugin为每个环境生成多个工件吗?无论如何,我需要一次生成所有这些,所以它接缝的配置文件不适合...仍然困惑:(
任何提示/示例/链接都将受到欢迎.
作为一个侧面问题,我也想知道如何在CI Hudson/Bamboo中实现这一点,以便为所有环境生成和部署这些生成的工件,并将其部署到适当的服务器上(例如:使用SCP Hudson插件)?
出于可访问性目的,我需要使所有可滚动控件(列表,列表视图)的滚动条更宽,滚动条箭头更大.
如何从可滚动控件(例如:TListView)获取滚动条(句柄)?
如何使滚动条和箭头更宽/更大?
10x任何提示和代码......