Crear e instalar frasco fuente de-lomboked en Maven

coderatchet:

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.jarque 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.

coderatchet:

TL; DR (explicado debajo)

Añadir la siguiente configuración de plugins para su pluginsconfiguración en el project.buildelemento 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-pluginle 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/delombokcarpeta, 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-sourcesdir).

maven-resources-plugines necesario con el fin de copiar también los recursos de la norma ${project.basedir}/src/main/resourcesdirectorio. 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-pluginse 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-filemeta se utiliza porque no se puede adjuntar frascos utilizando el installgol. Podemos cortar una solución mediante la instalación manualmente un archivo utilizando el install-filegol con un clasificador de sources.

Espero que esto ayude a otros que están en la calle lucha como si estuviera con este problema.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=203958&siteId=1
Recomendado
Clasificación