Дайте ответ на мой вопрос.
Во-первых, я не знаю четко, как работает maven build о проекте Java.
Если я собираю проект Java с использованием проекта maven, файлы вкаталог ресурсов копируется в target / classes /
, а остальные файлы каталога, оканчивающиеся на «.java», компилируются.
Скомпилированные файлы «.class» расположены в target / classes / {путь к пакету}.
Но другие файлы, за исключением завершенного '.java', не находятся в целевом каталоге.
Поскольку настройка сборки по умолчанию maven копирует в целевой каталог только файлы в каталоге ресурсов.
Поэтому я использую пользовательский параметр для сборки.
<build>
<resources>
<resource>
<filtering>true</filtering><!-- if it is neccessary -->
<directory>${project.basedir}/src/main/java/hardlearner/springStudy/user/sqlservice</directory><!-- from -->
<targetPath>${project.build.directory}/classes/hardlearner/springStudy/user/sqlservice</targetPath><!-- to -->
<includes><!-- what -->
<include>sqlmap.xml</include>
</includes>
</resource>
</resources>
</build>
Этот параметр копирует файл sqlmap.xml из исходного пакета в целевой каталог, создавая ту же структуру пакета.
<bean id="sqlService" class="hardlearner.springStudy.user.sqlservice.XmlSqlService">
<!-- value for target/claases/hardlearner/ ... -->
<property name="sqlmapFile" value="/hardlearner/springStudy/user/sqlservice/sqlmap.xml"/>
</bean>
, если я этого не сделаюt установить пользовательскую опцию сборки для копирования файла в целевой каталог, значение свойства bean-компонента sqlService просто "/sqlmap.xml".Но для этого файл sqlmap.xml находится в каталоге ресурсов.
копирование успешно