1

在我的项目中,我有一些由我的公司创建的 java 源代码和包含源代码的依赖 jars'。问题是该命令compileJava也尝试编译 jar 源。如何避免这种情况?我只想编译我的源代码,而不是 jars 的源代码。

[更新]

这是一个示例:

apply plugin: 'java'

tasks.withType(JavaCompile) {
    options.compilerArgs = ["-implicit:none"] // this doesn't work
    //options.compilerArgs << "-implicit:none" // this one also
}

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.company:myLib:1.0'
}

myLib包含由 gradle 编译但不应该编译的 java 源代码。

4

3 回答 3

0

我有同样的问题 - 原来设置一个空的源路径解决了这个问题

tasks.withType(JavaCompile) { options.compilerArgs += ["-sourcepath", ""] }

我很好奇为什么-implicit:none不起作用但不足以进一步调查(至少现在不是)。

资料来源:彼得在这篇文章中的回答。

于 2015-02-10T12:56:13.347 回答
0

您所描述的是 Java 编译器的标准行为,可以通过与命令行编译器相同的方式关闭:

tasks.withType(JavaCompile) {
    options.compilerArgs = ["-implicit:none"]
}
于 2013-06-18T03:54:33.390 回答
0

Gradle 仅编译具有 (1) 具有源和 (2) 已应用 java 插件的模块或项目的源。

如果要禁用编译或创建特定项目的 jar,可以使用如下语法:

project("Project123") { 
    compileJava.enabled = false
    //AND / OR
    jar.enabled = false
}

编辑

但是,如果您要从 ivy 等外部源中提取依赖项,则可以尝试包含依赖项的类型:

compile 'myLib:myLib:1.0:jar'
于 2013-06-17T08:39:25.763 回答