Итак, я пытаюсь преобразовать эту конфигурацию maven в gradle
<plugin>
<groupId>io.axoniq</groupId>
<artifactId>axon-dataprotection-maven-plugin</artifactId>
<version>${dataprotection-maven-plugin.version}</version>
<configuration>
<!-- required -->
<packages>
<package>io.axoniq.demo.giftcard.api</package>
</packages>
<!-- optional -->
<outputConfig>axon-data-protection-config.json</outputConfig>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
Итак, я попытался с помощью команды «gradle init», но это то, что я получил
dependencies {
implementation "io.axoniq:axon-dataprotection-maven-plugin:1.0"
}
как вы можете видеть, я потерял часть конфигурации, а также часть плагина в maven, не так ли. почему gradle вместо этого преобразует его в зависимость? В любом случае часть конфигурации требуется, так как я могу добавить ее в gradle.
Gradle может переносить только простые проекты. Проектам, в которых используются плагины, требующие настройки, Gradle здесь не поможет. Особенно для плагинов, которые не являются общий.
На портале плагинов Gradle для Axon Data Protection не существует подключаемого модуля сообщества, поэтому единственный вариант — переписать подключаемый модуль для Gradle, как описано выше:
If a plugin depends on the Maven project, then you will have to rewrite it. Don’t start by considering how the Maven plugin works, but look at what problem it is trying to solve. Then try to work out how to solve that problem in Gradle. You’ll probably find that the two build models are different enough that "transcribing" Maven plugin code into a Gradle plugin just won’t be effective. On the plus side, the plugin is likely to be much easier to write than the original Maven one because Gradle has a much richer build model and API.
Подробнее см. Работа с необычными и пользовательскими плагинами. Источник плагина: здесь.