【问题标题】:Gradle with Integrated SQL Security具有集成 SQL 安全性的 Gradle
【发布时间】:2015-10-15 09:20:11
【问题描述】:

我目前正在将我们的一个 Maven 项目转换为使用 Gradle。 这是我目前面临的问题:

此项目正在使用 SQL 集成安全性。以下是 Maven 的处理方式(我们花了一段时间才弄清楚):

    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>4.0</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/libs/sqljdbc4.jar</systemPath>
    </dependency>

运行后gradle init --type pom 这个特定的dependency 已转换为类似这样的内容:

system group: 'com.microsoft.jdbcdriver', name: 'sqljdbc', version:'4.0.1'

这是不对的。 Gradle 无法构建。更具体地说,system 范围甚至不存在于 Gradle 的 API 中(我在任何第三方 Gradle 插件中都没有找到它)。

如果您对 Gradle SQL 集成安全有任何帮助,我们将不胜感激。

【问题讨论】:

    标签: sql-server maven gradle build.gradle


    【解决方案1】:

    通过添加配置很容易使用 Gradle 模拟作用域system

    创建配置system 并将其设置为编译类路径。添加到system 的任何依赖项现在都可以在编译期间使用(尽管我怀疑您是否需要特定的JDBC 驱动程序进行编译),但system 中的依赖项不会添加到模块的已发布依赖项中:

    configurations {
        system.extendsFrom compile
    }
    
    sourceSets {
        main {
            compileClasspath = configurations.system
        }
    }
    

    现在您可以轻松地将 JDBC 驱动程序的 JAR 添加到 system 配置中。这假设您仍然想像使用 Maven 一样引用本地文件:

    dependencies {
        system files('libs/sqljdbc-4.0.1.jar')
    }
    

    但如果您在(本地)存储库中有 JAR,则最好使用该存储库:

    dependencies {
        system 'com.microsoft.jdbcdriver:sqljdbc:4.0.1'
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-17
      • 1970-01-01
      • 2012-05-31
      • 2010-10-25
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多