2017-07-18 83 views
0

假設我有一個我想用gradle構建的Java項目,但我希望gradle跳過源代碼樹的某些包或部分。使用gradle構建Java時跳過部分源代碼樹

如果源樹有一個非標準的佈局,我可以通過以下方式指定此:

sourceSets { 
    main { 
     java { 
      srcDirs = ['src'] 
     } 
     resources { 
      srcDirs = ['src'] 
     } 
    } 
} 

有沒有辦法告訴gradle這個無視一切src/org/example/foo/barproject/ui但建立的休息嗎?如果是這樣,怎麼樣?

+0

'src/org/example/foo/barproject/ui'或'src/main/org/example/foo/barproject/ui'? – chenrui

+0

@chenrui前者,如非標準'srcDirs' – user149408

+0

所示,我認爲這是Gradle 1.10,對不對? – chenrui

回答

1

這裏是我的解決方案:

apply plugin: 'java' 

sourceSets { 
    main { 
     java { 
      srcDir = ['src'] 
      exclude "main/*" 
      exclude "hello/*" 
      exclude "test/*" 
     } 
    } 
} 

我的文件夾佈局:

$ ls -R src 
Library.java hello  main   test 

src/hello: 
Application.java  HelloController.java 

src/main: 
java 

src/main/java: 
Library.java hello 

src/main/java/hello: 
Application.java  HelloController.java 

src/test: 
java 

src/test/java: 
LibraryTest.java 

輸出:

$ ./gradlew clean build -x test 
Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties. 
Deprecated dynamic property: "srcDir" on "source set 'main'", value: "[src]". 
:clean 
:compileJava 
:processResources UP-TO-DATE 
:classes 
:jar 
:assemble 
:check 
:build 

BUILD SUCCESSFUL 

Total time: 2.935 secs 

讓我知道這是否正常工作。

+0

謝謝,這是做到了。不幸的是,在試用之後,我還需要排除遍佈代碼庫的其他類 - 所以雖然這符合我的期望,但我必須嘗試一種不同的方法。 – user149408

+0

聽起來不錯! :) – chenrui