我已经构建了一个非maven项目来显示水晶报告,并将所有必需的jar导入lib文件夹。
但是,当我尝试找到依赖项以将相同的jar添加到我的pom.xml中以进行maven项目时,我无法在线查找。
如何找到maven项目的水晶报告依赖项?如何确定水晶罐的groupId和artifact?
以下是我正在寻找的罐子的快照。请建议。
我试过调查link in the SCN,但找不到太多细节。
答案 0 :(得分:1)
您可以使用“system”范围
将本地jar指定为maven依赖项<dependency>
<groupId>group.id</groupId>
<artifactId>artifact</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${lib.path}/some_1.0.jar</systemPath>
</dependency>
在属性中定义'lib.path'
答案 1 :(得分:0)
以下是两个解决方案:一个是指向具有系统范围的本地罐,另一个是将罐子部署到m2。我觉得第二种解决方案更可靠。
第一个解决方案:我按照here链接;但是无法让它完整起作用。因此将范围更改为系统并指向本地jar并最终能够访问这些类。 请参阅下面的pom.xml
<dependency>
<groupId>com.sap.crystalReports</groupId>
<artifactId>CrystalCommon2</artifactId>
<version>1.0.0-RT</version>
<scope>system</scope>
<systemPath>${lib.path}/CrystalCommon2.jar</systemPath>
</dependency>
.....
第二个解决方案是,从上面问题的评论中,我提出了将所有水晶罐一个接一个地部署到我当地的m2仓库中的想法。
mvn deploy:deploy-file -DgroupId=com.crystalruntime.sdk -DartifactId=JDBInterface
-Dversion=1.5 -Dfile= point-to-the-jar-location-on your-local\JDBInterface.jar
-Dpackaging=jar -Durl=file://point-to-local-m2 repository
groupId, artifactId,version
- 可以修改,但保持一致性和可读性,并选择名称是很好的。
在要安装到m2的任何/所有jar上运行此命令。然后我更新了项目,并做了另一个干净的构建,并能够成功运行然后应用程序。
另外,我确实从pom.xml中删除了系统范围
<scope>system</scope>
<systemPath>${lib.path}/JDBInterface.jar</systemPath>
并根据以下内容进行修改:
<dependency>
<groupId>com.crystalruntime.sdk</groupId>
<artifactId>JDBInterface</artifactId>
<version>1.5</version>
</dependency>
这对我来说更有意义,可以在maven项目中使用。 这是我跟随的link以供参考。