【发布时间】:2011-03-02 00:15:24
【问题描述】:
阅读了我能找到的所有帖子和问题后,我很难找到比仅使用个人资料进行以下操作更好的方法。
我需要使用相同的模块集,并将它们编译为完全不同的架构(J2ME 与 J2SE),它们需要对某些库具有不同的依赖关系,并且在编译时需要不同的源/目标/调试设置。
使用配置文件和分类器,我可以通过使用一个配置文件运行、清理并使用另一个配置文件运行构建来做到这一点。分类器对结果进行分类。但是,如果您只是更改配置文件并重建,它不会自行清理,它需要针对超级 pom 多次运行 maven,并且它不允许您同时启用多个配置文件(以及结果乱七八糟的很丑)。
我可以使用附加的工件并强制编译和 jar 步骤运行多次吗?
javac 选项真的很重要:(使用配置文件的依赖项不会导致任何问题)
对于 J2ME:
来源=1.4
目标=1.4
-g:来源
用于 J2ME 调试
来源=1.4
目标=1.4
对于 J2SE
来源=1.5
目标=1.5
【问题讨论】:
-
我真的很想帮忙。我能得到更多信息吗?您是否需要每个模块的多个版本?是否有您尝试拥有多个版本的“父”工件,例如 J2ME/J2ME-debug/J2SE 的 JAR 文件。
-
是的,每个 jar(多模块项目)都需要使用这两种设置进行编译。我使用顶级 pom 来驱动所有配置文件和编译器设置,并将所有单独的 jar 引用为模块。它还驱动依赖关系,但这主要是一个运行时问题(我需要 J2ME 和 J2SE 的某个 jar 的不同版本),而且问题几乎没有编译问题那么严重。
-
顺便说一句,我也尝试过执行,但是两个编译执行都执行了,然后两个打包执行都执行了,所以生成的jar都有相同的内容。
-
你能分享你的 pom.xml 细节吗,你是怎么处理的?
-
我认为这种情况正是配置文件的用途。