J'utilise le plugin maven-compile pour compiler les classes. Maintenant, je voudrais ajouter un fichier jar dans le chemin de classe actuel. Ce fichier reste dans un autre emplacement (disons c: /jars/abc.jar. Je préfère laisser ce fichier ici). Comment puis je faire ça?
Si j'utilise classpath dans l'argument:
<configuration>
<compilerArguments>
<classpath>c:/jars/abc.jar</classpath>
</compilerArguments>
</configuration>
cela ne fonctionnera pas car il remplacera le chemin de classe actuel (qui inclut toutes les dépendances)
Aidez-moi, s'il vous plaît.
Cela aurait pu être demandé auparavant. Voir Puis-je ajouter des jars à maven 2 build classpath sans les installer?
En un mot: incluez votre pot comme dépendance avec la portée du système. Cela nécessite de spécifier le chemin absolu vers le bocal.
Voir aussi http://maven.Apache.org/guides/introduction/introduction-to-dependency-mechanism.html
D'après docs et exemple , il n'est pas clair que la manipulation du chemin de classe n'est pas autorisée.
<configuration>
<compilerArgs>
<arg>classpath=${basedir}/lib/bad.jar</arg>
</compilerArgs>
</configuration>
Mais voir Java docs (aussi https://www.cis.upenn.edu/~bcpierce/courses/629/jdkdocs/tooldocs/solaris/javac.html )
-classpath path Spécifie le chemin utilisé par javac pour rechercher les classes nécessaires à l'exécution de javac ou référencées par d'autres classes que vous compilez. Remplace la variable d'environnement par défaut ou CLASSPATH si elle est définie.
Il est peut-être possible d'obtenir le chemin de classe actuel et de l'étendre,
voir dans maven, comment afficher le chemin de classe utilisé?
<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>
Lire le fichier ( Lire un fichier dans une propriété 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>
et enfin
<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>