Java 如何使用常春藤解决本地问题
我已经用Ivy和URL解析器设置了Eclipse项目,它在办公室的web服务器上查找工件和Ivy文件。一切都很好 我有几个项目是其他项目的依赖项,我想调整Ivy配置,以便这些依赖项可以“本地发布”,并且依赖它们的下游项目可以在本地解析它们。这样做将允许开发人员在一个项目中进行更改,并看到这些更改在依赖它的另一个项目中产生涟漪;所有这些都无需发布到我们的官方(web服务器)存储库 首先,我向一个项目(我们称之为Java 如何使用常春藤解决本地问题,java,dependencies,ivy,Java,Dependencies,Ivy,我已经用Ivy和URL解析器设置了Eclipse项目,它在办公室的web服务器上查找工件和Ivy文件。一切都很好 我有几个项目是其他项目的依赖项,我想调整Ivy配置,以便这些依赖项可以“本地发布”,并且依赖它们的下游项目可以在本地解析它们。这样做将允许开发人员在一个项目中进行更改,并看到这些更改在依赖它的另一个项目中产生涟漪;所有这些都无需发布到我们的官方(web服务器)存储库 首先,我向一个项目(我们称之为DepProj)添加了一个本地发布任务,该项目是下游项目的依赖项: <target
DepProj
)添加了一个本地发布任务,该项目是下游项目的依赖项:
<target name="publish-locally" depends="clean,dist">
<ivy:publish resolver="local" overwrite="true" pubrevision="${ivy.new.revision}">
<artifacts pattern="${distDir}/[artifact].[ext]" />
</ivy:publish>
</target>
我现在正被连接这两个方面而窒息。我需要调整我们的ivy.settings
文件以使用文件系统解析器。当DepProj
在本地发布时,您可以看到它首先运行clean
,然后运行dist
。dist
目标在DepProj/dist/DepProj.JAR
下创建一个JAR
我想我需要将文件系统解析器(以某种方式)指向这个dist
目录?但是,我想在本地发布的不仅仅是DepProj
我这里有拼图的大部分部分,我只是有点连接困难
有人能把我推向正确的方向吗?一个有用的代码示例总是非常感谢!谢谢 您肯定需要定义一个并创建自己的ivysettings.xml 你必须给它一个特殊的目录,它可以在那里发布。这应该在你的项目之外
<filesystem name="local" checkmodified="true">
<ivy pattern="${basedir}/../repo/[module](-[branch])/[revision]/[artifact](-[branch])-[revision].[ext]" />
<artifact pattern="${basedir}/../[module]/[revision]/[artifact](-[branch])-[revision].[ext]" />
</filesystem>
这将通过调用以下命令自动读取:
<ivy:settings />
这将激活设置
您还可以为特殊模块创建一个链,该链首先查看文件系统,然后查看存储库:
<resolvers>
<url name="remote"/>
<filesystem name="local" checkmodified="true" />
<chain name="ourOrg" dual="true" latest="time">
<resolver ref="local"/>
<resolver ref="remote"/>
</chain>
</resolvers>
<modules>
<!-- resolver für readybank module-->
<module organisation="ourOrg" resolver="ourOrg"/>
</modules>
IvyDe for eclipse有一个工作区解析器,它适用于在eclipse中打开的任何项目。有一个多项目构建示例,可以在ivy源代码存储库中找到:
<ivy:settings />
<resolvers>
<url name="remote"/>
<filesystem name="local" checkmodified="true" />
<chain name="ourOrg" dual="true" latest="time">
<resolver ref="local"/>
<resolver ref="remote"/>
</chain>
</resolvers>
<modules>
<!-- resolver für readybank module-->
<module organisation="ourOrg" resolver="ourOrg"/>
</modules>