私は自分の問題の解決策を見つけようと何年も探し回っていますが、私が遭遇した他のすべての投稿は機能しないか、私の状況と一致しないため、誰かが私に洞察を与えてくれることを願っています.
私は ant でビルドしたライブラリを持っています。これは 2 つの jar ファイルを出力します。1 つは通常のライブラリのコンパイル済みバージョンを含み、もう 1 つはソース ファイルのみを含みます。
このライブラリは、パッケージングが jar に設定された状態で Nexus リポジトリにアップロードされます。実際の jar ファイルでは、拡張子を jar に設定し、分類子を空白のままにします。ソース jar については、分類子をソースに、拡張子を jar に設定しました。
ivy.xml ファイルで何をしても、ソース jar をダウンロードできません。他の場所で読んだ投稿に基づいて、追加しようとしました:
conf="*->default,sources"
私の依存関係に、しかし、私はエラーが発生します:
configuration not found in org#name;version: 'sources'
つまり、これは基本的に私のライブラリがソースをどこかの構成として定義することを期待していますか? リポジトリ内のソースに分類子が設定された別のアーティファクトがあるという事実を拾うだけだと思いました。
ライブラリをNexusに公開した方法、またはIvyファイルで依存関係宣言を設定した方法のいずれかで、私が間違っている可能性があることについて、誰か他の提案をしてもらえますか?
これは、Nexus に置いたライブラリへの依存関係を定義する基本的な Ivy.xml ファイルです。
<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>
以下のコメントに応えて、Ant の 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
更新 これが解決された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>
これは明らかに、「ソース」conf が見つからない理由を説明しています。しかし、ソースを Nexus に追加したので、ソース conf を自動的に追加する必要があるという印象を受けました。