Вчера было сообщено об исключении при использовании mybatis-generator:generate для создания файлов Dao и Mapper: не удалось выполнить цель org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) в проекте XXX: Ресурс <properties> datasource.properties не существует, после некоторого анализа я поделюсь с вами решением.
Проблема описывается следующим образом: При выполнении mybatis-generator:generate
команды возникла следующая информация об исключении:
Failed to execute goal org.mybatis.generator:mybatis-generator-maven-plugin:1.3.2:generate (default-cli) on project XXX: <properties> resource datasource.properties does not exist
Эта проблема обычно возникает из-за того, что MyBatis Generator не может найти указанный файл datasource.properties. Ниже я шаг за шагом представлю вам решение.
Шаг 1. Подтвердите путь к файлу конфигурации.
Сначала вам необходимо подтвердить правильность пути к файлу конфигурации. MyBatis Generator необходимо найти файл datasource.properties, чтобы получить информацию о подключении к базе данных. Убедитесь, что правильный файл datasource.properties существует в каталоге src/main/resources проекта и содержит правильную информацию о подключении к базе данных. Если файл не существует или путь неверен, MyBatis Generator не сможет найти файл конфигурации, что приведет к исключению.
Шаг 2. Настройте плагин MyBatis Generator
В файле pom.xml вашего проекта найдите mybatis-generator-maven-plugin
раздел конфигурации плагина. В блок этого плагина <configuration>
вам необходимо добавить <propertiesFile>
элемент, чтобы указать правильный путь к файлу конфигурации. Например:
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>src/main/resources/mybatis-generator-config.xml</configurationFile>
<propertiesFile>src/main/resources/datasource.properties</propertiesFile>
</configuration>
</plugin>
В приведенной выше конфигурации <propertiesFile>
элемент указывает путь к правильному файлу datasource.properties. Вам необходимо изменить путь к правильному местоположению файла в соответствии со структурой вашего проекта.
Шаг 3. Восстановите файлы Dao и Mapper.
После завершения вышеуказанной настройки выполните mybatis-generator:generate
команду еще раз, и исключение о том, что файл конфигурации не может быть найден, больше не будет сообщаться. MyBatis Generator прочитает правильный файл конфигурации и сгенерирует необходимые файлы Dao и Mapper.
Шаг 4. Проверьте зависимости и номера версий.
Иногда проблемы с исключениями могут быть вызваны зависимыми библиотеками или несовпадающими номерами версий. Убедитесь, что все зависимости, связанные с MyBatis Generator в вашем проекте, настроены правильно, а номера версий соответствуют номерам версий плагинов.
Обычно в файл pom.xml необходимо добавить следующие зависимости:
<dependencies>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- MyBatis Generator -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
<!-- 其他依赖项... -->
</dependencies>
Обязательно добавьте приведенный выше фрагмент кода в файл pom.xml и при необходимости измените номер версии.
Шаг 5. Проверьте файлы конфигурации.
Если ни один из вышеперечисленных шагов не помог решить проблему, возможно, вам придется еще раз проверить конфигурацию в файле mybatis-generator-config.xml. Убедитесь, что в вашем файле конфигурации правильно указаны пути к целевым пакетам сгенерированных Dao и Mapper, информация о подключении к базе данных и отношения сопоставления между таблицами.
В файле mybatis-generator-config.xml должна содержаться конфигурация, подобная следующей:
<jdbcConnection>
<!-- 数据库连接信息 -->
<driverClass>com.mysql.jdbc.Driver</driverClass>
<connectionURL>jdbc:mysql://localhost:3306/mydatabase</connectionURL>
<userId>root</userId>
<password>password</password>
</jdbcConnection>
<!-- 目标包路径 -->
<javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java">
<!-- 其他配置项... -->
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/resources">
<!-- 其他配置项... -->
</sqlMapGenerator>
<javaClientGenerator targetPackage="com.example.dao" targetProject="src/main/java" type="XMLMAPPER">
<!-- 其他配置项... -->
</javaClientGenerator>
<!-- 表的映射 -->
<table tableName="user" domainObjectName="User">
<!-- 其他配置项... -->
</table>
Пожалуйста, настройте приведенные выше конфигурации в соответствии с потребностями вашего проекта, чтобы убедиться, что они соответствуют вашей реальной ситуации.
Шаг 6. Очистите проект и пересоберите его.
Если вы по-прежнему получаете исключение, попробуйте очистить проект и восстановить файлы Dao и Mapper. Очистить проект можно следующей командой:
mvn clean
Затем выполните mybatis-generator:generate
команду еще раз.
Я надеюсь, что мой рассказ будет полезен всем.