首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Maven中的平台架构来确定依赖关系?

如何使用Maven中的平台架构来确定依赖关系?
EN

Stack Overflow用户
提问于 2011-07-20 20:55:28
回答 2查看 13.6K关注 0票数 18

正如问题所述,在构建maven工件时,有没有一种很好的方法来使用基于平台架构的依赖关系。我知道配置文件以及如何使用它们。为了这个特殊的目的,我不想把它们合并到我的构建中。

详细的问题可以描述如下:

  • 多模块maven project
  • Continous集成和项目人员使用均匀分布的平台architectures
  • Dependency到本机系统库

我不想在设置中使用的解决方案:

maven配置文件无依赖项redundancy

  • No maven配置文件(或者至少是由platform architecture)

自动选择的maven配置文件

举个例子

Person1

  • (使用linux i686)生成项目
  • x86库被捆绑到每个子项目中,并且生成的工件正在生成

Person2

  • (使用win32)构建项目
  • 32位库程序与上面的

一样捆绑在一起

持续集成

  • 的运行方式与linux amd64
  • integrate amd64库

上的生产环境类似。

编辑关于配置文件

我知道配置文件就是这样做的一种解决方案。但我想要实现的是,您从某个随机的源代码版本控制中签出您的项目,并使用本地库构建一个开箱即用的项目,而无需执行任何操作(只要平台满足配置的要求)。

我不想配置这些配置文件设置,也不想明确地运行特定的目标。如果配置文件中有这样的东西,我希望看到一个自动确定平台架构并运行目标的示例。如果有一个没有配置文件,我会更喜欢它,因为它不太复杂,同时具有不同的现有配置文件组合(包括测试和其他用例)。

对我来说,拥有单独的配置文件感觉有点臃肿,需要手动努力。

我希望有人有一个整洁的建议,因为我不知何故坚持了这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-20 23:02:51

如果没有配置文件,我不知道有什么方法可以做到这一点。这是将配置文件添加到maven的主要用例。您可以使用以下命令来完成此操作:

代码语言:javascript
复制
<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

票数 24
EN

Stack Overflow用户

发布于 2011-07-20 21:16:24

使用配置文件有什么问题?它们就是为这种情况而制作的。您可以按OS/platform指定配置文件操作并添加依赖项。完全透明。

另一种方法是将您的核心库移动到一个单独的模块中,并为每个平台提供一个模块。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6762271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档