Maven类路径构造

时间:2013-05-15 22:13:12

标签: maven compilation zip

我有Nexus作为我的本地存储库服务器,管理员添加了db2 jdbc驱动程序,它包含几个jar文件和一个zip:db2java.zip。 Nexus管理员在此位置添加了db2java.zip:

    <dependency>
        <groupId>com.ibm.db2.jdbc</groupId>
        <artifactId>db2java</artifactId>
        <version>08.02.0000</version>
        <type>zip</type>
    </dependency>

当我把它放入我的项目并运行“mvn clean compile”时,它会将db2java.zip下载到我的本地仓库(.m2目录),但是当Maven尝试将其添加到类路径时不会将依赖项(db2java.zip)添加到类路径中编译项目。所以,我得到了构建错误。

¿如何让db2java.zip包含在类路径中?

我的项目中其他数以万计的JAR依赖项没有任何问题,因此这种行为是因为依赖项是一个ZIP文件。 一种解决方案是将扩展名从zip更改为jar,但我更喜欢使用原始扩展名(ZIP),因为这是它的分发方式。

1 个答案:

答案 0 :(得分:0)

我在OpenJPA SVN看到db2 maven configuration提及如下: -

请注意,您可能需要先解压缩zip文件以收集一些jar文件。

1。将jdbc驱动程序安装到本地存储库(或存储库管理器)

mvn install:install-file -Dfile=${path to db2jcc.jar} \
                         -DgroupId=com.ibm.db2 \
                         -DartifactId=jcc-driver \
                         -Dversion=9.5 \
                         -Dpackaging=jar

mvn install:install-file -Dfile=${path to db2jcc_license.jar} \
                         -DgroupId=com.ibm.db2 \
                         -DartifactId=jcc-license \
                         -Dversion=9.5 \
                         -Dpackaging=jar

2。对该jar文件进行依赖

<dependencies>
    <dependency>
        <groupId>com.ibm.db2</groupId>
        <artifactId>jcc-driver</artifactId>
        <version>9.5</version>
    </dependency>
    <dependency>
        <groupId>com.ibm.db2</groupId>
        <artifactId>jcc-license</artifactId>
        <version>9.5</version>
    </dependency>
</dependencies>

我希望这可能有所帮助。