2
我正在嘗試使用gradle(版本2.3)而不是ant編譯this project。如何將資源目錄(而不是單個文件)包含到編譯類路徑中?
有兩個子模塊; cachedb
編譯沒有問題;至於另一個,NBStudioCore
,我做了充分的練習,使用antlr插件等具有正確的依賴關係...它編譯,但註釋處理器阻礙。
全部分支:https://github.com/fge/NBStudio/tree/topic/gradle
從原來的區別:
- 重命名SRC爲src /主/ JAVA;
- 所有非java文件放入src/main/resources。
子模塊NBStudioCore
的讀取的build.gradle:
apply(plugin: "antlr");
repositories {
mavenCentral();
maven {
url "http://bits.netbeans.org/maven2";
}
}
dependencies {
antlr(group: "org.antlr", name: "antlr4", version: "4.5");
compile project(":cachedb");
compile(group: "org.netbeans.api", name: "org-openide-util",
version: "RELEASE80");
compile(group: "org.netbeans.api", name: "org-netbeans-api-search",
version: "RELEASE80");
compile(group: "org.netbeans.api", name: "org-netbeans-modules-lexer",
version: "RELEASE80");
compile(group: "org.netbeans.api", name: "org-netbeans-modules-parsing-api",
version: "RELEASE80");
compile(group: "org.netbeans.api", name: "org-netbeans-modules-editor",
version: "RELEASE80");
compile(group: "org.netbeans.api",
name: "org-netbeans-modules-editor-completion", version: "RELEASE80");
compile(group: "org.netbeans.api",
name: "org-netbeans-spi-editor-hints", version: "RELEASE80");
compile(group: "org.netbeans.api", name: "org-netbeans-core-multiview",
version: "RELEASE80");
compile(group: "org.netbeans.api", name: "org-netbeans-modules-csl-api",
version: "RELEASE80");
}
而且compileJava
任務輸出(從目錄NBStudioCore
內的../gradlew compileJava
運行)是這樣的:
:NBStudioCore:clean
:NBStudioCore:generateGrammarSource
:cachedb:compileJava UP-TO-DATE
:cachedb:processResources UP-TO-DATE
:cachedb:classes UP-TO-DATE
:cachedb:jar UP-TO-DATE
:NBStudioCore:compileJava
[...]
/home/fge/work/src/NBStudio/NBStudioCore/src/main/java/org/nbstudio/core/cls/clsVisualElement.java:19: error: Cannot find resource org/nbstudio/core/cls/class.png
@MultiViewElement.Registration(
^
[...]
/home/fge/work/src/NBStudio/NBStudioCore/src/main/java/org/nbstudio/core/OpenFileAction.java:30: error: Cannot find resource org/nbstudio/Bundle.properties
public class OpenFileAction implements ActionListener {
^
[...]
/home/fge/work/src/NBStudio/NBStudioCore/src/main/java/org/nbstudio/core/bas/package-info.java:5: error: Cannot find resource org/nbstudio/core/bas/bas.gif
@TemplateRegistration(folder = "Cache", content = "basTemplate.bas", displayName = "BAS Routine")
^
[...]
/home/fge/work/src/NBStudio/NBStudioCore/src/main/java/org/nbstudio/core/cls/newFileWizard.java:23: error: Cannot find resource org/nbstudio/core/cls/clsTemplate.cls
@TemplateRegistration(folder = "Cache", content = "clsTemplate.cls", displayName = "Cache Class")
^
[...]
warning: layer file Editors/text/isc-cls/MultiView/org-nbstudio-core-cls-clsVisualElement.instance was never written
warning: layer file Actions/System/org-netbeans-modules-openfile-OpenFileAction.instance was never written
warning: layer file Loaders/text/isc-bas/Factories/org-nbstudio-core-bas-basDataObject.instance was never written
warning: layer file Templates/Cache/clsTemplate.cls was never written
4 errors
36 warnings
FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':NBStudioCore:compileJava'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 7.121 secs
如果我啓動--debug我看到編譯類路徑不包含資源目錄。但在這裏我需要它。
我試圖和該行添加到的build.gradle:
dependencies {
// ....
compile fileTree("src/main/resources");
,但它增加了每一個人文件編譯的類路徑是不是我想要的......我想只有目錄。
我試圖實現這一點,超過半天沒有任何成功!我怎麼做?
http://stackoverflow.com/questions/22768920/is-there-a-way-to-add-classpath-directories-for-dependencies-on-gradle – guai