2017-07-18 38 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