maven-2 - plugin - maven manifest classpath
Maven: agrega una carpeta o un archivo jar en classpath actual (2)
Estoy usando el plugin maven-compile para compilar las clases. Ahora me gustaría agregar un archivo jar en el classpath actual. Ese archivo permanece en otra ubicación (digamos c: /jars/abc.jar. Prefiero dejar este archivo aquí). ¿Cómo puedo hacer eso?
Si utilizo classpath en el argumento:
<configuration>
<compilerArguments>
<classpath>c:/jars/abc.jar</classpath>
</compilerArguments>
</configuration>
no funcionará porque anulará la ruta de clase actual (que incluye todas las dependencias)
Por favor, ayúdame.
De los docs y del example no está claro que no se permita la manipulación de classpath.
<configuration>
<compilerArgs>
<arg>classpath=${basedir}/lib/bad.jar</arg>
</compilerArgs>
</configuration>
Pero vea los documentos de Java (también https://www.cis.upenn.edu/~bcpierce/courses/629/jdkdocs/tooldocs/solaris/javac.html )
-classpath ruta Especifica la ruta que utiliza javac para buscar las clases necesarias para ejecutar javac o que otras clases que está compilando hacen referencia a ellas. Anula la variable de entorno predeterminada o CLASSPATH si está configurada.
Tal vez es posible obtener classpath actual y extenderlo,
¿Ves en maven cómo se usa el classpath?
<properties>
<cpfile>cp.txt</cpfile>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>build-classpath</id>
<phase>generate-sources</phase>
<goals>
<goal>build-classpath</goal>
</goals>
<configuration>
<outputFile>${cpfile}</outputFile>
</configuration>
</execution>
</executions>
</plugin>
Leer archivo ( Leer un archivo en una propiedad de Maven )
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
def file = new File(project.properties.cpfile)
project.properties.cp = file.getText()
</source>
</configuration>
</execution>
</executions>
</plugin>
y finalmente
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<compilerArgs>
<arg>classpath=${cp}:${basedir}/lib/bad.jar</arg>
</compilerArgs>
</configuration>
</plugin>
Esto podría haber sido preguntado antes. Consulte ¿Puedo agregar jars a maven 2 build classpath sin instalarlos?
En pocas palabras: incluya su jar como dependencia con el alcance del sistema. Esto requiere especificar la ruta absoluta al tarro.
Véase también http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html