当前位置: 首页 > 知识库问答 >
问题:

如何在不同的配置文件中对不同的模块添加不同的依赖关系?

黄博艺
2023-03-14

我有一个由maven管理依赖关系的多模块项目。

我在子模块“插件”中有多个插件。我想在不同的场景中添加不同的插件,但在每个场景中都需要一些插件。

“插件”模块中的pom.xml。

<profiles>
   <profile>
        <id>internal</id>
        <modules>
            <module>first-plugin</module>
        </modules>
        <dependencies>
            <dependency>
                <groupId>com.first.groups</groupId>
                <artifactId>first-plugin</artifactId>
                <version>${project.version}</version>
            <dependency>
        </dependencies>
   </profile>
</profiles>
<modules>
    <module>second_module</module>
</modules>
<dependencies>
    <dependency>
        <groupId>com.first.groups</groupId>
        <artifactId>second-module</artifactId>
        <version>${project.version}</version>
    <dependency>
</dependencies>

无论我运行“mvn包”还是“mvn包-P内部”,它只包含第二个模块作为依赖项。有人知道原因吗?

我的maven版本是3.3.9

共有1个答案

田权
2023-03-14

所以,如果你问这个想法怎么做,它会是这样的:

    < li >创建一个负责构建所有项目的父项目,例如
         <modules>
            <module>first _module</module>
            <module>second_module</module>
          </modules>

使用依赖管理来管理依赖

<dependencyManagement/> tag  

如果所有模块中都有共同的依赖关系,则将该依赖关系放在父项目中,并将该项目作为父项目引用,并在所有模块中标记

 类似资料:
  • 问题内容: 对于不同的配置文件,maven pom.xml文件中是否可能具有一组不同的依赖关系? 例如 我想在一个配置文件中选择一个不同的依赖项jar文件,该文件具有相同的类名和相同接口的不同实现。 问题答案: 在此引用Maven文档: 配置文件元素既包含可选激活(配置文件触发器),又包含如果已激活POM则要对POM进行的一组更改。例如,为测试环境构建的项目可能指向与最终部署不同的数据库。或者可以

  • 问题内容: 我正在使用不同的Maven配置文件将我的应用程序部署到不同的环境。(使用weblogic-maven-plugin,但是我认为这并不重要) 在应用程序中,我使用Spring Web Services。现在,我想根据环境更改端点。(端点在Spring的applicationContext.xml中定义) 我的想法是从属性文件中读取值。该属性文件将在Mavens软件包阶段写入(或复制)。

  • 我正在将我的一个应用程序转换为Gradle,并希望使用新的构建风味功能,以有一个付费和免费的广告为基础的风味。 我希望只有基于广告的版本依赖于admob SDK。 我的生成文件如下所示: 是否有一种方法可以在免费产品版本中配置依赖项,使其拥有自己的libs文件夹,该文件夹与包含两种版本通用库的主libs文件夹合并? 如果这是可能的,我将如何定义这个文件夹?

  • 对于一些人来说,这可能是一个非常简单的问题,但就我个人而言,Log4j配置非常困难,学习执行脑部手术可能没有那么困难。 我正试图让多个日志记录者登录到不同的文件。这是我的log4j中的内容。属性文件: 这是我的(非常简单的)Java应用程序用于测试配置: 我有两个问题: 有一个问题,我总是在

  • 我有一个Maven项目,其中包括一个Maven插件(Liquibase Maven插件),它公开了不同的目标。其中两个目标(update和diff)需要在它们之间发生冲突的不同参数(因为两者的语义不同),因此我需要在两个目标执行中赋予Maven不同的属性。 有没有办法在Maven中为不同的目标传递不同的配置?

  • 在app.gradle中,我只为专业版添加了LockPattern库: 我在两种风格中都描述了相同的类(所以在主文件夹中),因为它很大,我不想在两种风格中重复代码。pro版本成功构建,但lite版本显示了一个错误,因为我没有导入lite版本的依赖项。 我看到的一个解决方案是将lockpattern库添加到两种口味中,然后使用proGuard,将其从lite口味中删除。虽然我相信这可能奏效,但这可能