Dav*_*ton 5 java nexus ivy maven ivyde
我一直在寻找解决问题的方法,但我遇到的所有其他帖子要么不起作用,要么与我的情况不符,所以希望有人可以给我一些见解.
我有一个我用ant构建的库,它输出2个jar文件,一个正常包含库的编译版本,另一个只包含源文件.
该库上传到我们的Nexus存储库,包装设置为jar.对于实际的jar文件,我将扩展名设置为jar并将分类器留空.对于源jar,我将分类器设置为jar的源和扩展.
无论我对我的ivy.xml文件做什么,我都无法下载源jar.基于我在其他地方读过的帖子,我尝试添加:
conf="*->default,sources"
Run Code Online (Sandbox Code Playgroud)
我的依赖,但后来我得到一个错误:
configuration not found in org#name;version: 'sources'
Run Code Online (Sandbox Code Playgroud)
所以这基本上是期望我的库将源定义为某个配置?我认为它只会发现存在另一个人工制品,其中分类器设置为存储库中的源.
任何人都可以通过我将我的库发布到Nexus的方式,或者我在Ivy文件中如何设置我的依赖声明,向我提出我可能做错的其他建议.
这是基本的Ivy.xml文件,我在这里定义了我对Nexus中放置的库的依赖.
<ivy-module version="2.0">
<info organisation="${ivy.organisation}" module="moduleName" />
<configurations>
<conf name="pda" description="moduleName for PDA"/>
<conf name="server" description="moduleName for server"/>
</configurations>
<dependencies>
<!-- Internal -->
<dependency name="utility" org="${ivy.organisation}" rev="latest.integration" conf="${ivy.configuration}"/>
<dependency name="myLib" org="my.org" rev="0.0.+"/>
</dependencies>
</ivy-module>
Run Code Online (Sandbox Code Playgroud)
在回复下面的评论时,我的build.properties中的ivy.configuration属性设置为pda.对于Eclipse,我创建了一个属性文件,并将ivy.configuration设置为pda(然后在Eclipse中的Ivy设置中引用此属性文件).
我得到的错误信息是:
Some projects fail to be resolved
Impossible to resolve dependencies of ${ivy.organisation}#moduleName;working@host
unresolved dependency: my.org#myLib;0.0.+: configuration not found in my.org#myLib;0.0.0: 'sources'. It was required from ${ivy.organisation}#moduleName;working@host pda
Run Code Online (Sandbox Code Playgroud)
UPDATE 这是解析的ivy.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
<info organisation="my.org"
module="myLib"
revision="0.0.0"
status="release"
publication="20120419131909"
default="true"
/>
<configurations>
<conf name="default" visibility="public"/>
</configurations>
<publications>
<artifact name="myLib" type="jar" ext="jar" conf="default"/>
</publications>
</ivy-module>
Run Code Online (Sandbox Code Playgroud)
这显然解释了为什么它找不到"来源"的内容.但我的印象是应该自动添加来源conf,因为我已将消息来源添加到Nexus.
经过一番尝试后,我似乎终于找到了解决方案。如果我通过以下方式声明我的依赖关系:
<dependency name="myLib" org="my.org" rev="0.0.+">
<artifact type="jar"/>
<artifact type="source" m:classifier="sources" conf="pdaDev->sources"/>
</dependency>
Run Code Online (Sandbox Code Playgroud)
然后我可以添加一个新的配置(例如上面的 pdaDev),它链接到依赖项的源配置。使用 Eclipse 时,我可以告诉它使用 pdaDev 配置,它也会拉入源 jar(如果存在)。
奇怪的是,Nexus 似乎没有在解析的 Ivy 文件中包含源配置,除非像我上面所做的那样明确要求。
| 归档时间: |
|
| 查看次数: |
5468 次 |
| 最近记录: |