正如问题所述,在构建maven工件时,有没有一种很好的方法来使用基于平台架构的依赖关系。我知道配置文件以及如何使用它们。为了这个特殊的目的,我不想把它们合并到我的构建中。
详细的问题可以描述如下:
我不想在设置中使用的解决方案:
maven配置文件无依赖项redundancy
自动选择的maven配置文件
举个例子
Person1
Person2
一样捆绑在一起
持续集成
上的生产环境类似。
编辑关于配置文件
我知道配置文件就是这样做的一种解决方案。但我想要实现的是,您从某个随机的源代码版本控制中签出您的项目,并使用本地库构建一个开箱即用的项目,而无需执行任何操作(只要平台满足配置的要求)。
我不想配置这些配置文件设置,也不想明确地运行特定的目标。如果配置文件中有这样的东西,我希望看到一个自动确定平台架构并运行目标的示例。如果有一个没有配置文件,我会更喜欢它,因为它不太复杂,同时具有不同的现有配置文件组合(包括测试和其他用例)。
对我来说,拥有单独的配置文件感觉有点臃肿,需要手动努力。
我希望有人有一个整洁的建议,因为我不知何故坚持了这一点。
发布于 2011-07-20 23:02:51
如果没有配置文件,我不知道有什么方法可以做到这一点。这是将配置文件添加到maven的主要用例。您可以使用以下命令来完成此操作:
<profiles>
<profile>
<activation>
<os>
<name>Windows XP</name>
<family>Windows</family>
<arch>x86</arch>
</os>
</activation>
...
</profile>
<profile>
<activation>
<os>
<family>Linux</family>
<arch>x64</arch>
</os>
</activation>
...
</profile>
<profile>
<activation>
<property>
<name>integration-test</name>
</property>
</activation>
...
</profile>
</profiles>
然后,当有人签出一个项目并在Linux x64机器上构建它时,他们将自动获得Linux x64配置文件下的所有内容。如果他们还在命令行上提供了属性-Dintegration-test
,那么他们也会激活集成测试概要文件。您可以拥有任意数量的活动概要文件,这些概要文件可以组合在一起,为构建创建有效的POM。这些概要文件可以在您处理的所有项目的共享父POM中定义,因此开发人员不必更改他们的settings.xml文件。
要获取有关激活配置文件的更多信息,请查看:http://maven.apache.org/guides/introduction/introduction-to-profiles.html。
发布于 2011-07-20 21:16:24
使用配置文件有什么问题?它们就是为这种情况而制作的。您可以按OS/platform指定配置文件操作并添加依赖项。完全透明。
另一种方法是将您的核心库移动到一个单独的模块中,并为每个平台提供一个模块。
https://stackoverflow.com/questions/6762271
复制相似问题