TL; DR (поясняется ниже)
Добавьте следующую конфигурацию плагинов в вашу конфигурацию plugins
в элементе project.build
вашего pom.xml
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.0.0</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>delombok</goal>
</goals>
</execution>
</executions>
<configuration>
<sourceDirectory>src/main/java</sourceDirectory>
<outputDirectory>${project.build.directory}/delombok</outputDirectory>
<addOutputDirectory>false</addOutputDirectory>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-to-lombok-build</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
<outputDirectory>${project.build.directory}/delombok</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>generate-delomboked-sources-jar</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<jar destfile="${project.build.directory}/${project.build.finalName}-sources.jar"
basedir="${project.build.directory}/delombok"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<executions>
<execution>
<id>install-source-jar</id>
<goals>
<goal>install-file</goal>
</goals>
<phase>install</phase>
<configuration>
<file>${project.build.directory}/${project.build.finalName}-sources.jar</file>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<classifier>sources</classifier>
<generatePom>true</generatePom>
<pomFile>${project.basedir}/pom.xml</pomFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Объяснение
lombok-maven-plugin
позволит вам деломбокать исходный код (${project.basedir}/src/main/java
) и поместить его в целевой каталог (${project.build.directory}/delombok
).Обычно это помещает код в папку ${project.build.directory}/generated-sources/delombok
, но поскольку Intellij автоматически учитывает этот дополнительный исходный код, при разработке библиотеки будут возникать ошибки дублирующегося кода. Чтобы остановить это, просто укажите целевой каталог не по умолчанию (вэтот случай находится за пределами generated-sources
dir).
maven-resources-plugin
необходим для того, чтобы также копировать ресурсы из стандартного каталога ${project.basedir}/src/main/resources
.Если в вашем проекте есть другие нестандартные каталоги ресурсов, вы должны настроить их в разделе ресурсов для этого плагина.
1024 *
* используется вместо maven-source-плагин, потому что вы не можете указать пользовательский каталог источника в дальнейшем.Задача jar указывает на наши настраиваемые «сгенерированные источники» и создает стандартные источники jar. maven-install-plugin
install-file
цель используется, поскольку вы не можете прикрепить банки с помощью install
гол.Мы можем взломать решение, вручную установив файл, используя цель install-file
с классификатором sources
. Я надеюсь, что это поможет другим, кто находится на улице борьбы, как я был с этой проблемой.