我有一个gradle项目在eclipse中运行,刚刚从gradle 4升级到gradle 6。现在,如果我进行“gradle刷新”,我会得到错误“项目中的测试源文件夹'src/integration Test/java',必须有一个不用于主要资源的输出文件夹”。
我检查了我的手机。源文件夹的类路径文件和输出文件夹与主资源不同。
下面是类路径文件:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="bin/main" path="src/main/java">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test,integrationTest"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/main" path="src/main/resources">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test,integrationTest"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/test" path="src/test/java">
<attributes>
<attribute name="gradle_scope" value="test"/>
<attribute name="gradle_used_by_scope" value="test,integrationTest"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/integrationTest" path="src/integration-test/java">
<attributes>
<attribute name="gradle_scope" value="integrationTest"/>
<attribute name="gradle_used_by_scope" value="integrationTest"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/integrationTest" path="src/integration-test/resources">
<attributes>
<attribute name="gradle_scope" value="integrationTest"/>
<attribute name="gradle_used_by_scope" value="integrationTest"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer">
<attributes>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin/default"/>
</classpath>
我也试图改变输出文件夹只是一些随机的,但我仍然得到了错误。我理解错误吗?一些gradle设置会导致这个吗?
顺便说一句,错误的堆栈跟踪看起来像这样:
Synchronize Gradle projects with workspace failed due to an unexpected error.
Test source folder 'src/integration-test/java' in project 'impl' must have an output folder that is not also used for main sources
Java Model Exception: Java Model Status [Test source folder 'src/integration-test/java' in project 'impl' must have an output folder that is not also used for main sources]
at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:795)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3530)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3490)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3546)
at org.eclipse.buildship.core.workspace.internal.SourceFolderUpdater.updateSourceFolders(SourceFolderUpdater.java:72)
at org.eclipse.buildship.core.workspace.internal.SourceFolderUpdater.update(SourceFolderUpdater.java:174)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildOperation.synchronizeJavaProjectInTransaction(SynchronizeGradleBuildOperation.java:245)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildOperation.access$200(SynchronizeGradleBuildOperation.java:99)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildOperation$4.run(SynchronizeGradleBuildOperation.java:234)
at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:38)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:733)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2316)
at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:5733)
at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:5690)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildOperation.synchronizeJavaProject(SynchronizeGradleBuildOperation.java:230)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildOperation.synchronizeOpenWorkspaceProject(SynchronizeGradleBuildOperation.java:221)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildOperation.synchronizeWorkspaceProject(SynchronizeGradleBuildOperation.java:186)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildOperation.synchronizeGradleProjectWithWorkspaceProject(SynchronizeGradleBuildOperation.java:176)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildOperation.access$000(SynchronizeGradleBuildOperation.java:99)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildOperation$1.run(SynchronizeGradleBuildOperation.java:134)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2289)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2311)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildOperation.synchronizeProjectsWithWorkspace(SynchronizeGradleBuildOperation.java:131)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildOperation.run(SynchronizeGradleBuildOperation.java:115)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.synchronizeBuild(SynchronizeGradleBuildsJob.java:85)
at org.eclipse.buildship.core.workspace.internal.SynchronizeGradleBuildsJob.runToolingApiJob(SynchronizeGradleBuildsJob.java:73)
at org.eclipse.buildship.core.util.progress.ToolingApiJob$1.run(ToolingApiJob.java:73)
at org.eclipse.buildship.core.util.progress.ToolingApiInvoker.invoke(ToolingApiInvoker.java:62)
at org.eclipse.buildship.core.util.progress.ToolingApiJob.run(ToolingApiJob.java:70)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)
问题似乎就在这里:
<classpathentry kind="src" output="bin/integrationTest" path="src/integration-test/java">
<attributes>
<attribute name="gradle_scope" value="integrationTest"/>
<attribute name="gradle_used_by_scope" value="integrationTest"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/integrationTest" path="src/integration-test/resources">
<attributes>
<attribute name="gradle_scope" value="integrationTest"/>
<attribute name="gradle_used_by_scope" value="integrationTest"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
其中,output=“bin/integrationTest”
它被用于两个输出,因此您可以添加另一个输出,例如:
<classpathentry kind="src" output="bin/integrationTest/java" path="src/integration-test/java">
<attributes>
<attribute name="gradle_scope" value="integrationTest"/>
<attribute name="gradle_used_by_scope" value="integrationTest"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/integrationTest/resources" path="src/integration-test/resources">
<attributes>
<attribute name="gradle_scope" value="integrationTest"/>
<attribute name="gradle_used_by_scope" value="integrationTest"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
资源(Asset)代表 source 文件夹中除了文章以外的所有文件,例如图片、CSS、JS 文件等。比方说,如果你的Hexo项目中只有少量图片,那最简单的方法就是将它们放在 source/images 文件夹中。然后通过类似于 ![](/images/image.jpg) 的方法访问它们。 对于那些想要更有规律地提供图片和其他资源以及想要将他们的资源分布在各个文章上的人来说,Hexo也提供了更组
如何从资源文件夹的子文件夹中读取文件。 我在资源文件夹中有一些json文件,例如: 现在我想在我的课堂上读到这个 这是我正在尝试的,但是失败了。 不起作用,那么我正在尝试: 这两样东西都不工作。
我正在创建一个javafx GUI应用程序,我的项目是一个maven配置的项目。我希望能够在我的控制器中引用我的fxml文件,如下所示: 其中,我的main.fxml文件位于src/main/resources文件夹中,而我的控制器位于src/main/java文件夹中。我该怎么做呢?我的src/main/resources文件夹在构建路径中,并且我能够从src/main/java文件夹中的类调用
我有一个资源文件夹/包在我的项目的根,我"不"想要加载某个文件。如果我想加载某个文件,我会使用class.getResourceAsStream,我会没事的!!我实际上想做的是在资源文件夹中加载一个“文件夹”,循环该文件夹中的文件,并获得每个文件的流,并在内容中读取...假设在运行时之前没有确定文件名...那我该怎么办?有没有一种方法来获得一个文件夹中的文件列表在您的jar文件?请注意,带有资源的
我试图使用位于src/test/resources下的文件进行单元测试,但当我试图读取它时,我不能总是获得空指针。 我使用Spring Boot 2.0.2,JDK 10和Gradle。 我尝试了谷歌搜索问题时发现的许多代码变体,但没有成功。 我的身材。gradle看起来像这样: 我的测试是这些测试的一些变体(我尝试过的任何测试都没有成功): 测试课程如下: src\test\java\com\m
背景:我想根据模式自动验证XML文件。为此,我在中创建了一个maven-project和一个-class。 为了运行测试,我在中创建了。我的想法是将XML和XSD文件(我想要验证)放入文件夹,并按文件名“抓取”它们。但是当我运行时,找不到文件。 我的测试类: 当我运行时,我得到了一个文件找不到的异常,例如-它在资源文件夹中。 我尝试了Maven(surefire)的解决方案:通过-标记复制文件,从