Я не понимаю твою проблему. Ресурсы из src/main/resources
автоматически копируются в target/classes
и, таким образом, доступны в пути к классам в Maven и Eclipse относительно корневого уровня в том же месте (если ваш проект Eclipse не настроен должным образом).
А при упаковке внутри JAR содержимое target/classes
упаковывается «как есть», поэтому ничего не меняется.
Другими словами, доступ к вашему file.txt
, как это совершенно нормально (и это на самом деле , как все задокументировано ):
// Retrieve resource
InputStream is = getClass().getResourceAsStream( "/file.txt" );
// Do something with the resource
...
Если у вас возникла проблема, пожалуйста, уточните.
Обновление: Я провел быстрый тест с помощью плагина maven-eclipse-plugin и не могу воспроизвести вашу проблему:
$ mvn archetype:generate -DgroupId=com.stackoverflow -DartifactId=q2467362 -Dversion=1.0-SNAPSHOT
...
$ cd q2467362
$ mkdir -p src/main/resources
$ mvn eclipse:eclipse
...
$ cat .classpath
<classpath>
<classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
<classpathentry kind="src" path="src/main/java" including="**/*.java"/>
<classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
<classpathentry kind="output" path="target/classes"/>
<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
</classpath>
Каталог src/main/resources
добавляется как исходная папка, как и ожидалось. Можете ли вы показать свой POM (особенно элемент resources
, если вы его определите)?