我正在尝试使用Maven将以下db2 jar添加到我的Java Web应用程序中...
db2jcc_license_cu.jar
db2jcc_javax.jar
db2jcc.jar
Run Code Online (Sandbox Code Playgroud)
我正按照这篇文章中发布的说明... 我可以将jar添加到maven 2 build classpath而不安装它们吗?
我想使用静态项目内存储库解决方案.到目前为止我有......
Run Code Online (Sandbox Code Playgroud)<repository> <id>lib</id> <releases> <enabled>true</enabled> <checksumPolicy>ignore</checksumPolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> <url>file://${project.basedir}/lib</url> </repository> </repositories>
<dependency>
<groupId>com.ibm.db2.jcc</groupId>
<artifactId>db2jcc</artifactId>
<version>3.8.47</version>
</dependency>
<dependency>
<groupId>com.ibm.db2.jcc</groupId>
<artifactId>db2jcc_license_cu</artifactId>
<version>3.8.47</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但是当我运行maven安装时,我得到......
[WARNING] The POM for com.ibm.db2.jcc:db2jcc:jar:3.8.47 is missing, no dependency information available
[WARNING] The POM for com.ibm.db2.jcc:db2jcc_license_cu:jar:3.8.47 is missing, no dependency information available
Run Code Online (Sandbox Code Playgroud)
我通过运行...获得了Jars的版本
java com.ibm.db2.jcc.DB2Jcc -version
我是否正确指定了此版本信息?任何人都可以建议我做错了什么?
ben*_*n75 10
问题是您没有在"project-maven-repository"中正确安装jar(即在文件夹中${project.basedir}/lib)
Maven存储(当你这样做时mvn install)maven存储库中的jar文件.maven存储库具有精确的层次结构.以下是此结构的简化视图:
groupId+ artifactId定义存储工件的文件夹路径的第一部分(在存储库中).version是文件夹路径的第二部分version也是工件名称的后缀artifactId是工件名称默认情况下,maven使用位于其下的存储库 <USER_HOME>/.m2/repository
您尝试设置的解决方案使用存储库的另一个位置:${project.basedir}/lib即使它不是默认存储库位置,它仍然是maven-repository,因此maven期望在此位置下找到通常的maven存储库层次结构.
这就是为什么你需要${project.basedir}/lib像maven存储库一样组织你的文件夹.这部分引用的帖子对此进行了解释:
使用Maven安装到项目仓库
我建议不要手动创建这个结构,而是使用Maven插件将你的jar作为工件安装.因此,要将工件安装到repo文件夹下的项目内存储库,请执行:
mvn install:install-file -DlocalRepositoryPath=lib -DcreateChecksum=true -Dpackaging=jar -Dfile=[your-jar] -DgroupId=[...] -DartifactId=[...] -Dversion=[...]如果您选择这种方法,您将能够将pom中的存储库声明简化为:
<repository>
<id>repo</id>
<url>file://${project.basedir}/lib</url>
</repository>
Run Code Online (Sandbox Code Playgroud)
所以你需要做一个mvn install创建${project.basedir}/lib层次结构(你可以手工完成,但不推荐它,并且容易出错).
我的情况,运行的命令将是这样的:(假设您将jar放在HOME_DIR中并在您的运行中运行此命令${project.basedir})
mvn install:install-file -DlocalRepositoryPath=lib -DcreateChecksum=true -Dpackaging=jar -Dfile=<USER_HOME>/db2jcc_license_cu.jar -DgroupId=com.ibm.db2.jcc -DartifactId=db2jcc_license_cu -Dversion=3.8.47
您选择的approch有哪些优点:
缺点:
${project.basedir}/lib看起来非常奇怪的是一个不习惯使用maven的人.| 归档时间: |
|
| 查看次数: |
36464 次 |
| 最近记录: |