对于这个问题,有很多“解决方案”,但我都没有用,因此,如果这看起来多余,请原谅我。
我有一个使用Intellij IDEA构建的Java / Maven项目,该项目依赖于从以下GitHub项目构建的jar文件:https://github.com/protegeproject/snap-sparql-query
不幸的是,该jar不在任何外部存储库中,因此必须由我来构建。我的构建工作正常,并将jar手动复制到我的父项目的WEB-INF / lib文件夹中。 Intellij然后正确运行,即使生成的war文件不包含snap-sparql-query jar,也可以在执行时找到所有相关的jar。我猜它正被缓存在某个地方。
如果我从命令行($ mvn clean package
生成项目,则它会生成,但是上面的jar文件仍然不包含在生成的war文件中,即使该文件存在于Windows的WEB-INF / lib文件夹中也是如此。父文件,然后打包为war文件。
理想的解决方案是父级中的Maven命令:
至少在[em> 方面,我会手动执行上面的1-3感到满意,但是让Maven执行#4。
<!-- snAP SParqL API -->
<!-- https://github.com/protegeproject/snap-sparql-query -->
<dependency>
<groupId>edu.stanford.protege</groupId>
<artifactId>snap-sparql-query-api</artifactId>
<version>4.0.0-snAPSHOT</version>
<!-- this library isn't found in the maven repository,must be externally compiled -->
<!-- and copied to the ...WEB-INF/lib directory so this pom can find it -->
<scope>system</scope>
<systemPath>${basedir}/WEB-INF/lib/snap-sparql-query-api-4.0.0-snAPSHOT.jar</systemPath>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>edu.stanford.protege</groupId>
<artifactId>de-derivo-sparqldlapi</artifactId>
<version>2.0.0</version>
<!--<version>3.0.0</version>-->
</dependency>
我已经被警告使用systemPath是 bad ,所以,如果可能的话,我也想避免这种情况。
我可以让Maven至少执行上面的第4项,和/或最好执行1-4吗?