我有一个具有以下结构的多项目:
其中"插件"只是一个目录。
现在我有几个课程" globalOptions":
内部有一个课程" commandPlugin":
" CommandPluginTest" class使用" OptionExtension"和" OptionHandlerExtension"来自另一个项目:
import at.lyze.plugin.globalOptions.extensionpoint.OptionExtension;
import at.lyze.plugin.globalOptions.extensionpoint.OptionHandlerExtension;
List<OptionHandlerExtension> optionHandlers = wrapper.getPluginManager().getExtensions(OptionHandlerExtension.class);
for (OptionHandlerExtension optionHandler : optionHandlers) {
logger.warn(optionHandler.getOption(getClass(), "TestOption"));
}
我的gradle构建文件如下所示:
&#34; globalOptions&#34;:
dependencies {
compile project(':pluginApi')
}
&#34; commandPlugin&#34;:
dependencies {
compile project(':plugins/globalOptions')
compile project(':pluginApi')
}
当试图运行&#34; jar&#34;每个项目的任务我收到以下错误:
Note: Extension found in at.lyze.plugin.globalOptions.GlobalOptions$TestExtension
:plugins/globalOptions:compileJava
:plugins/globalOptions:processResources UP-TO-DATE
:plugins/globalOptions:classes
:plugins/globalOptions:jar
Note: Extension found in at.lyze.plugin.commandPlugin.CommandPluginTest$BlarghExtension
C:\Users\wml\Desktop\LocalRepos\darkowlbot\plugins\commandPlugin\src\main\java\at\lyze\plugin\commandPlugin\Co mmandPluginTest.java:3: error: package at.lyze.plugin.globalOptions.extensionpoint does not exist
import at.lyze.plugin.globalOptions.extensionpoint.OptionExtension;
^
C:\Users\wml\Desktop\LocalRepos\darkowlbot\plugins\commandPlugin\src\main\java\at\lyze\plugin\commandPlugin\Co mmandPluginTest.java:4: error: package at.lyze.plugin.globalOptions.extensionpoint does not exist
import at.lyze.plugin.globalOptions.extensionpoint.OptionHandlerExtension;
^
C:\Users\wml\Desktop\LocalRepos\darkowlbot\plugins\commandPlugin\src\main\java\at\lyze\plugin\commandPlugin\Co mmandPluginTest.java:52: error: cannot find symbol
public static class BlarghExtension implements EventProcessorExtension, OptionExtension {
^
symbol: class OptionExtension
location: class CommandPluginTest
C:\Users\wml\Desktop\LocalRepos\darkowlbot\plugins\commandPlugin\src\main\java\at\lyze\plugin\commandPlugin\CommandPluginTest.java:76: error: cannot find symbol
public void initializeOptions(OptionHandlerExtension optionHandlerExtension) {
^
symbol: class OptionHandlerExtension
location: class CommandPluginExtensionClass
4 errors
:plugins/commandPlugin:compileJava FAILED
FAILURE: Build failed with an exception.
我在这里做错了什么或为什么会失败? 如果需要,我可以提供更多信息。
运行gradle 2.9
编辑:
Settings.gradle(包含所有内容的全局项目)
rootProject.name = 'DarkOwlBot'
include 'pluginApi'
include 'core'
include 'plugins/globalOptions'
include 'plugins/commandPlugin'
include 'plugins/guiFeederService'
答案 0 :(得分:1)
很可能,gradle项目名称中的'/'存在问题。默认情况下,项目名称也用于为项目创建jar。这可能导致错误的文件路径。
我认为解决这个问题的最佳选择是:
将settings.gradle文件中的include语句更改为
include ':plugins:globalOptions'
和参考globalOptions
compile project(':plugins:globalOptions')
将settings.gradle文件中的include语句更改为
include ':globalOptions'
并通过project(':globalOptions').projectDir = file('plugins/globalOptions')
显式配置项目目录
并通过compile project(':globalOptions')
答案 1 :(得分:0)
除了@ReneGroeschke所说的,你应该省略into ('classes')
行here。您正在改变生成的工件的结构。