手動アップロード依存のjarはプライベートのNexusになります。

2765 ワード

ある時、プロジェクトに依存しているjar libはpublic repositoryの中にないかもしれません。system scopeの依存を直接追加する方法があります。
<dependency>
    <groupId>com.demo.wwwgroupId>
    <artifactId>demoartifactId>
    <version>0.0.1version>
    <scope>systemscope>
    <systemPath>${project.basedir}/lib/demo-0.0.1.jarsystemPath>
dependency>
このようにしてはいけないわけではないですが、見ていると変に見えます。管理に頼るのも面倒です。たまにバグに出会うことがあります。
もう一つの方法はこのjarをあなたのプライベートNexusにアップロードすれば管理できます。使う時は普通のdependencyルールを維持すればいいです。
<dependency>
    <groupId>com.demo.wwwgroupId>
    <artifactId>demoartifactId>
    <version>0.0.1version>
dependency>
以下は筆者が使っているbashのアップロードスクリプトを提供します。読者は実際の状況によって修正してください。その後、pomにsystem scopeの依存は必要ありません。
mvn deploy:deploy-file \
-DgroupId=com.demo.www \
-DartifactId=demo \
-Dversion=0.0.1 \
-DgeneratePom=true \
-Dpackaging=jar \
-DrepositoryId=myrepository \
-Durl=http://myrepository.com/content/repositories/releases \
-Dfile=demo-sdk-java-0.0.1.jar