Test-Source-Folder ohne eigenen Output-Ordner — Testklassen landen in target/classes #84
Labels
No labels
bug
build
enhancement
headless
P1-critical
P2-high
P3-medium
P4-low
refactoring
No milestone
No project
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ai-tools/jdt-mcp-server#84
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptom
Beim Maven-Import erzeugt
ProjectImportereine.classpath, in dersrc/main/javaundsrc/test/javabeide ohneoutput-Attribut angelegt sind; einziger Output isttarget/classes. Eclipse kompiliert die Testklassen dorthin (arknet: 17 inarknet-shared-kernel, 56 inarknet-mcp). Ein anschließendesmvn packageohnecleanpackt sie ins Jar (arknet-shared-kernel-0.9.0-SNAPSHOT.jarenthielt 11 Testklassen).Das ist die Ursache der seit Juli 2026 bekannten "Unresolved compilation problems" in fremden Modulen, sobald jdt-mcp mit dem Workspace verbunden ist.
Ursache
ProjectImporter.addSourceFolderIfExists()ruftJavaCore.newSourceEntry(path)ohne Output-Location auf — für alle vier Folder gleich. Danach wirdsetOutputLocation(target/classes)als einziger Output gesetzt.Erwartung
Wie bei m2e:
src/test/javaundsrc/test/resourcesmitoutput="target/test-classes"(JavaCore.newSourceEntry(path, exclusions, outputLocation)), main-Folder mittarget/classes. Gleiches Muster für Gradle (build/classes/java/main/build/classes/java/test).Zu prüfen:
ExecutionToolsbaut den Runtime-Classpath ausgetOutputLocation()und den Source-Entries — der Test-Output muss dort mit aufgenommen werden.Gefunden
Test gegen arknet (27 Module, Java 25, JUnit 6.1.1) am 2026-09-07, Server 1.0.0.202604101442.