我目前正在致力于将我们的 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
这个特定的依赖
已转换为如下内容:
system group: 'com.microsoft.jdbcdriver', name: 'sqljdbc', version:'4.0.1'
这是不对的。 Gradle 无法构建。更具体地说,system
范围甚至不存在于 Gradle 的 API 中(我在任何第三方 Gradle 插件中都没有找到它)。
任何有 Gradle SQL 集成安全经验的人的帮助将受到高度赞赏。
最佳答案
通过添加配置,可以非常轻松地使用 Gradle 模拟作用域 system
。
创建配置system
并将其设置为编译类路径。添加到 system
的任何依赖项现在都可以在编译期间使用(尽管我怀疑您需要特定的 JDBC 驱动程序进行编译),但是 system
中的依赖项不会添加到模块的已发布依赖项:
configurations {
system.extendsFrom compile
}
sourceSets {
main {
compileClasspath = configurations.system
}
}
现在您可以轻松地将 JDBC 驱动程序的 JAR 添加到系统
配置中。这假设您仍然想引用本地文件,就像使用 Maven 一样:
dependencies {
system files('libs/sqljdbc-4.0.1.jar')
}
但是如果您在(本地)存储库中有 JAR,那么最好使用该存储库:
dependencies {
system 'com.microsoft.jdbcdriver:sqljdbc:4.0.1'
}
关于sql-server - 具有集成 SQL 安全性的 Gradle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31614981/