簡體   English   中英

Gradle嘗試編譯jar的來源

[英]Gradle tries to compile jars' sources

在我的項目中,我有一些由公司創建的Java源以及包含源的依賴關系jar。 問題是命令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源代碼,但不應編譯。

Gradle僅針對具有(1)具有源代碼和(2)應用了Java插件的模塊或項目編譯源代碼。

如果要禁用特定項目的jar的編譯或創建,可以使用如下語法:

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

編輯

但是,如果您要從像ivy這樣的外部源中獲取依賴項,則可以嘗試包括依賴項的類型:

compile 'myLib:myLib:1.0:jar'

您所描述的是Java編譯器的標准行為,可以通過與命令行編譯器相同的方式將其關閉:

tasks.withType(JavaCompile) {
    options.compilerArgs = ["-implicit:none"]
}

我有同樣的問題-原來設置空的源路徑可以解決問題

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

我很好奇-implicit:none無效的原因,但不足以進一步調查(至少現在不是)。

資料來源:Peter在這篇文章中的回答。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM