thk*_*ala 13 java eclipse dependencies tycho maven
我有一堆基于Eclipse的插件,我一直在迁移到Maven/Tycho.大多数这些插件依赖于我现在通过Maven管理的单独库,而不是混淆.jar文件.
我当前设置中最麻烦的部分是由于Tycho明显无法处理仅Maven(即非OSGi)工件.我目前的设置是这样的:
在pom.xml每个Eclipse插件中,我在阶段发出一个unpack目标.这会将我指定的工件解包到一个单独的目录中.maven-dependency-plugininitializetarget/dependencies
该target/dependencies目录作为输出目录添加build.properties,因此Tycho可以在编译时将其添加到类路径中:
source.. = src/main/java/
output.. = target/classes/
output.. = target/dependencies/
Run Code Online (Sandbox Code Playgroud)该target/dependencies目录将添加到Bundle-ClassPath库中META-INF/MANIFEST.MF.
这些设置允许compileMaven指令编译插件.从VCS导入项目并target/dependencies在Eclipse中手动指定目录作为类文件夹允许所述IDE也编译插件.
不幸的是,由于以下几个原因,这是一个相当麻烦的解决方案:
配置maven-dependency-plugin要求列出应解压缩的所有工件.一个可以使用unpack-dependencies的替代unpack,但也将打开所有的OSGi依赖-的Eclipse有一半在每个项目目录解压不是我的乐趣所在......
在Eclipse中添加类文件夹需要initialize运行一次Maven ,以便target/dependencies创建目录.
纯Maven项目与Eclipse中依赖的Tycho项目之间没有源连接.对于从Maven项目传播到Tycho项目的更改,以便例如Eclipse可能显示潜在的编译问题,必须mvn install使用Maven项目然后mvn clean initialize在Tycho项目中运行以删除先前解压缩的依赖项并拉入当前集合.然后你必须刷新Eclipse项目并希望Eclipse做正确的事情.
同样,从Tycho项目查看依赖关系源将不会显示主要源文件,而是显示可用的内容target/dependencies- 很可能只是一个.class文件.
我认为必须有一个更合理的方法来解决这个问题 - 这将允许Eclipse和Maven项目更紧密地集成.
那么,我错过了什么?这个用例的推荐设置是什么?还有更好的选择吗?最好是不需要设置一堆Nexus和/或p2存储库的东西?
您可以尝试带有 Embed-Dependency 的 maven-bundle-plugin 。
请参阅http://wiki.eclipse.org/Tycho/How_Tos/Dependency_on_pom-first_artifacts
官方演示效果很好。但是,我仍然没有成功地以这种方式使用我的 jar 文件。
| 归档时间: |
|
| 查看次数: |
6735 次 |
| 最近记录: |