Exención de responsabilidad: He resuelto este problema y estoy documentando la solución para que el mundo sepa.
¿Cómo crear e instalar una *-sources.jar
que contiene "delomboked" código fuente en maven?
Por defecto, la fuente-plugin maven crea un frasco fuentes, sin delomboking los archivos de origen, lo que provoca proyectos que dependen de los binarios de la biblioteca para quejarse de una mala adaptación archivos de origen.
TL; DR (explicado debajo)
Añadir la siguiente configuración de plugins para su plugins
configuración en el project.build
elemento de su 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>
Explicación
lombok-maven-plugin
le permitirá delombok el código fuente ( ${project.basedir}/src/main/java
) y colocarlo en el directorio de destino ( ${project.build.directory}/delombok
). Por lo general, esto va a colocar el código en la ${project.build.directory}/generated-sources/delombok
carpeta, sino porque Intellij considera automáticamente este código fuente adicional, se producirá errores de código duplicado en el desarrollo de su biblioteca, con el fin de detener esto, basta con especificar un directorio de destino no predeterminado (en este caso solo fuera de la generated-sources
dir).
maven-resources-plugin
es necesario con el fin de copiar también los recursos de la norma ${project.basedir}/src/main/resources
directorio. Si hay otros directorios de recursos no convencionales en su proyecto, usted debe configurar en la sección de recursos para este plugin.
maven-antrun-plugin
se utiliza en lugar de la fuente-plugin maven porque no se puede especificar un directorio de origen personalizado en la tarde. Los puntos de prueba frasco a nuestra costumbre ": fuentes generan" y produce el tarro de las fuentes de llamada estándar.
maven-install-plugin
install-file
meta se utiliza porque no se puede adjuntar frascos utilizando el install
gol. Podemos cortar una solución mediante la instalación manualmente un archivo utilizando el install-file
gol con un clasificador de sources
.
Espero que esto ayude a otros que están en la calle lucha como si estuviera con este problema.