gpt4 book ai didi

java - 不同依赖关系中的 Maven 配置文件

转载 作者:行者123 更新时间:2023-12-02 06:07:21 26 4
gpt4 key购买 nike

我有一个带有两个不同数据库配置文件的 Maven 模块。

    <profile>
<id>db-localhost-oracle</id>
<dependencies>
<dependency>
<groupId>ojdbc6</groupId>
<artifactId>ojdbc6</artifactId>
</dependency>
</dependencies>
<properties>
<db.driver>oracle.jdbc.driver.OracleDriver</db.driver>
<db.dialect>no.jbv.sergej.util.FixedOracle10gDialect</db.dialect>
<db.url>jdbc:oracle:thin:@//localhost:1521/xe</db.url>
<db.hbm2ddl>update</db.hbm2ddl>
</properties>
</profile>

<profile>
<id>db-localhost-mysql</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<properties>
<db.driver>com.mysql.jdbc.Driver</db.driver>
<db.dialect>org.hibernate.dialect.MySQL5Dialect</db.dialect>
<db.url>jdbc:mysql://localhost/${mysql.schema}</db.url>
<db.hbm2ddl>update</db.hbm2ddl>
</properties>
</profile>

当使用“db-localhost-mysql”运行maven install时,它会在lib目录中包含“mysql-connector-java”jar文件。现在我使用“db-localhost-oracle”进行全新安装,它在 lib 目录中包含“mysql-connector-java”和“ojdbc6”jar。

如果我使用一个配置文件构建,maven 会自动删除其他配置文件的 jars,我怎样才能做到这一点?

最佳答案

您的问题与实际情况不符。您的个人资料定义对我来说听起来很正确:

mvn clean install 将启用 db-localhost-mysql (因为它被标记为默认激活),并且它将添加 mysql-connector-java。如果运行mvn clean install -Pdb-localhost-mysql

,也会发生同样的情况

mvn clean install -Pdb-localhost-oracle添加 ojdbc6 驱动程序。 mysql 配置文件将不会启用(因为仅当没有配置文件显式处于 Activity 状态时才会触发)。

这并不意味着您当前的依赖层次结构还没有这些 jar 之一。它可能作为传递依赖出现。要隔离这种情况并了解需要修复哪个项目,请运行 mvn dependency:tree -Pdb-localhost-oracle 在未启用 mysql 配置文件时查看依赖关系层次结构。

关于java - 不同依赖关系中的 Maven 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22166940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com