代码之家  ›  专栏  ›  技术社区  ›  Arun Venkataraman

配置文件不是工件名称的一部分

  •  0
  • Arun Venkataraman  · 技术社区  · 12 年前

    我的项目使用的代码可以在Android或Java上运行。为了抽象出不常见的部分,我们使用相同的API,但特定于平台的实现——一个用于Android,一个用于Java。

    类似这样的内容:

    common/src/main/java/...
    droid/src/main/java/...
    POJ/src/main/java/...
    

    common可以依赖于 任何一个 droid.jar或POJ.jar。

    我使用概要文件在common上进行android构建(指定droid.jar依赖项),然后进行java构建(指定POJ.jar依赖项)。这会导致冲突,因为两者都创建了一个名称相同但内容不同的工件。

    我是在要求maven向后弯腰吗?有更好的方法来实现这一点吗?

    谢谢

    1 回复  |  直到 12 年前
        1
  •  0
  •   Kent    12 年前

    我猜你使用了一些插件来构建你的jar/war/。。。。 在maven概要文件中,您不仅可以声明依赖项,还可以声明插件配置。

    它看起来像:

    <profile>
      <id>whatever</id>
      <build>
        <plugins>
          <groupId/>
          <artifactId/>
          <version/>
          <configuration>
            ...
          </configuration>
        </plugins>
      </build>
    </profile>
    

    例如,如果您使用maven jar插件。你可以定义 finalname ,以从不同的配置文件中获取唯一的名称。

    然而,请注意,如果您使用一个配置文件进行构建,那么如果 mvn -Panother clean package 它将移除另一个。

    另一种方法是创建具有不同依赖关系的子模块。