水晶报告罐为maven

时间:2014-02-24 15:05:45

标签: java maven jar crystal-reports pom.xml

我已经构建了一个非maven项目来显示水晶报告,并将所有必需的jar导入lib文件夹。

但是,当我尝试找到依赖项以将相同的jar添加到我的pom.xml中以进行maven项目时,我无法在线查找。

如何找到maven项目的水晶报告依赖项?如何确定水晶罐的groupId和artifact?

以下是我正在寻找的罐子的快照。请建议。

enter image description here

我试过调查link in the SCN,但找不到太多细节。

2 个答案:

答案 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以供参考。