Je crée une application maven qui utilise un service de point de terminaison sparql. Je voudrais avoir un objectif maven pour télécharger le point de terminaison sparql et démarrer le service mais il semble que maven ait quelques problèmes pour configurer le classpath. J'utilise blazegraph et son artefact au https://mvnrepository.com/artifact/com.blazegraph/bigdata-jar.Maven exec: java exécute le plug-in jar dépendance du plugin exécutable dans NPE
Ici, il est mon plug-in configuration pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.bigdata.rdf.sail.webapp.StandaloneNanoSparqlServer</mainClass>
<includePluginDependencies>true</includePluginDependencies>
<includeProjectDependencies>false</includeProjectDependencies>
<executableDependency>
<groupId>com.blazegraph</groupId>
<artifactId>blazegraph-jar</artifactId>
</executableDependency>
<addOutputToClasspath>false</addOutputToClasspath>
</configuration>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.blazegraph/blazegraph-jar -->
<dependency>
<groupId>com.blazegraph</groupId>
<artifactId>blazegraph-jar</artifactId>
<version>2.1.4</version>
<scope>runtime</scope>
<type>jar</type>
</dependency>
</dependencies>
</plugin>
La sortie de débogage insinue que le plug-in ne peut pas trouver l'artefact:
Caused by: java.lang.NullPointerException
at org.codehaus.mojo.exec.AbstractExecMojo.findExecutableArtifact(AbstractExecMojo.java:278)
at org.codehaus.mojo.exec.ExecJavaMojo.determineRelevantPluginDependencies(ExecJavaMojo.java:650)
at org.codehaus.mojo.exec.ExecJavaMojo.addRelevantPluginDependenciesToClasspath(ExecJavaMojo.java:568)
at org.codehaus.mojo.exec.ExecJavaMojo.getClassLoader(ExecJavaMojo.java:520)
at org.codehaus.mojo.exec.ExecJavaMojo.execute(ExecJavaMojo.java:301)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
... 27 more
Qu'est-ce que je suis disparu?
Modifier 1 Cette question n'est pas un double de What is a NullPointerException, and how do I fix it? parce que l'exception est levée par Maven car il ne peut pas trouver l'artefact droit dans la liste des dépendances (mais il y a lieu).
Éditer 2 Merci à @Sean Patrick Floyd J'ai partiellement résolu le problème. Il y a toujours le même problème dans la configuration du classpath, je suppose. Maintenant, Maven trouve la classe principale et le pot, mais après l'exécution, je reçois un autre NPE dans le code compilé. En regardant dans le code open source de blazegraph, il semble qu'il ne peut pas ouvrir une ressource dans le fichier exécutable.
Voici la ligne qui provoque NPE:
System.setProperty("jetty.home",
jettyXml.getClass().getResource("/war").toExternalForm());
double possible de [? Qu'est-ce qu'un NullPointerException, et comment puis-je résoudre ce problème] (https://stackoverflow.com/questions/218384/what-is- a-nullpointerexception-and-how-do-i-fix-it) –
NPE est lancé par un plugin Maven, pas par le code OP. – LoganMzz