0

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

像这样的东西:

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

common 可以依赖于droid.jar或 POJ.jar。

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

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

谢谢!

4

1 回答 1

0

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

它看起来像:

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

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

但是,请注意,如果您使用一个配置文件构建,那么如果您mvn -Panother clean package将删除另一个配置文件。

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

于 2013-03-15T02:13:53.840 回答