dan*_*war 3 eclipse eclipse-plugin maven jenkins
我们正在尝试管理由多个Eclipse插件组成的项目.
一个插件依赖于第三方插件.它从名为bpmn2的库中导入一个类.该库是一个jar文件,不包含在Maven远程存储库中.
在本地,在Eclipse中,我们将库检出到工作空间中,并在Eclipse项目的类路径中引用.插件清单未明确声明对bpmn2的依赖性.哪个在本地工作......
我们尝试使用Jenkins进行持续集成.Multi-Plug-in-Project使用Maven和多个POM文件使用Maven tycho插件进行管理.
问题是Maven并不关心本地存在的库bpmn2(当然).所以我们认为使用Maven install:install将bpmn2安装到本地Maven资源库
./mvn install:install-file -Dfile=/home/someUser/bpmn2/org.eclipse.bpmn2_0.7.0.201111021300.jar -DgroupId=org.eclipse.bpmn2 -DartifactId=bpmn2 -Dversion=0.7.0 -Dpackaging=jar -DlocalRepositoryPath=/var/lib/jenkins/localRep/
Run Code Online (Sandbox Code Playgroud)
并使用库的依赖项来调整相应的POM
<dependencies>
<dependency>
<groupId>org.eclipse.bpmn2</groupId>
<artifactId>bpmn2</artifactId>
<version>0.7.0</version>
<type>jar</type>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
会工作.但事实并非如此.
Maven的输出是:
[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: modeltype.bpmn2 1.0.0.qualifier
[ERROR] Missing requirement: modeltype.bpmn2 1.0.0.qualifier requires 'bundle org.eclipse.bpmn2 0.7.0' but it could not be found
[ERROR]
Run Code Online (Sandbox Code Playgroud)
问题是:
我们怎样才能更好地整合第三方图书馆?我认为,本地类路径引用不是更好图像的最佳解决方案.是否每个为项目开发的人都应该安装bpmn2库并且只使用清单中的依赖项?
我们在Maven做错了什么?本地存储库是
/var/lib/jenkins/localRep
Run Code Online (Sandbox Code Playgroud)
在将库安装到存储库之后,似乎创建的目录结构没问题.
/org/eclipse/bpmn2/bpmn2/0.7.0/bpmn2-0.7.0.jar
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
最简单的解决方案是为您的公司设置存储库服务器,并通过该服务器代理您的所有呼叫.
我使用Sonatype的Nexus.
当您需要从远程位置(如maven central)下载工件时,它可以充当代理,但它也能够设置存储库以存储非公共分布的工件.
整个设置过程在这里有详细记录 - > http://www.sonatype.com/books/nexus-book/reference/.
请注意,该产品的开源版本非常好,足以满足您的需求.
公平地说,有一种名为Artifactory的竞争产品.你可以在这里阅读 - > http://www.jfrog.com/products.php
小智 6
我有一个类似的场景,我需要在Maven Web项目中包含第三方库(未在maven存储库中加载).
以下方法帮助我们使代码可移植.
解:
在WEB_INF下创建了"lib"目录,如下所示:
<<Project_Base_Dir>>/src/main/webapp/WEB-INF/lib
Run Code Online (Sandbox Code Playgroud)
将第三方JAR复制到LIB目录.
更新了POM.xml以使用SYSTEMPATH,如下所示:
<dependency>
<groupId>GROUP_ID</groupId>
<artifactId>ARTIFACT_ID</artifactId>
<version>VERSION</version>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/<<JAR_FILENAME>></systemPath>
<scope>system</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5037 次 |
| 最近记录: |