私は非常に厳しく管理された組織で働いており、外部のリポジトリへのアクセスを絶対に許可しません。
アプリケーションにSpring&Hibernateフレームワークを使用し、Mavenを使用して依存関係を解決してプロジェクトをビルドしたいと思います。
ローカルサーバーにネクサス「サードパーティ」リポジトリを設定しました。これで、実際にライブラリを追加する作業が始まります。Hibernate 3.6.7.Finalには以下のjarが付属しています。
./hibernate-testing.jar
./hibernate3.jar
./lib/required/commons-collections-3.1.jar
./lib/required/dom4j-1.6.1.jar
./lib/required/jta-1.1.jar
./lib/required/slf4j-api-1.6.1.jar
./lib/required/antlr-2.7.6.jar
./lib/required/javassist-3.12.0.GA.jar
./lib/jpa/hibernate-jpa-2.0-api-1.0.1.Final.jar
./lib/optional/c3p0/c3p0-0.9.1.jar
./lib/optional/swarmcache/swarmcache-1.0RC2.jar
./lib/optional/proxool/proxool-0.8.3.jar
./lib/optional/jbosscache/jbosscache-core-3.2.1.GA.jar
./lib/optional/oscache/oscache-2.1.jar
./lib/optional/infinispan/infinispan-core-4.2.1.CR1.jar
./lib/bytecode/javassist/javassist-3.12.0.GA.jar
./lib/bytecode/cglib/cglib-2.2.jar
Spring 3.0.6.RELEASEには次のものが付属しています。
org.springframework.aop-3.0.6.RELEASE.jar
org.springframework.jdbc-3.0.6.RELEASE.jar
org.springframework.asm-3.0.6.RELEASE.jar
org.springframework.jms-3.0.6.RELEASE.jar
org.springframework.aspects-3.0.6.RELEASE.jar
org.springframework.orm-3.0.6.RELEASE.jar
org.springframework.beans-3.0.6.RELEASE.jar
org.springframework.oxm-3.0.6.RELEASE.jar
org.springframework.context-3.0.6.RELEASE.jar
org.springframework.test-3.0.6.RELEASE.jar
org.springframework.context.support-3.0.6.RELEASE.jar
org.springframework.transaction-3.0.6.RELEASE.jar
org.springframework.core-3.0.6.RELEASE.jar
org.springframework.web-3.0.6.RELEASE.jar
org.springframework.expression-3.0.6.RELEASE.jar
org.springframework.web.portlet-3.0.6.RELEASE.jar
org.springframework.instrument-3.0.6.RELEASE.jar
org.springframework.web.servlet-3.0.6.RELEASE.jar
org.springframework.instrument.tomcat-3.0.6.RELEASE.jar
org.springframework.web.struts-3.0.6.RELEASE.jar
依存関係を展開するための2つの推奨される方法が
1)pomをセットアップします。コマンド「mvn deploy」を使用します
2)個々のjarファイルに対して、次のようにコマンドラインを使用します。
mvn deploy:deploy-file -Durl=file://C:\m2-repo \
-DrepositoryId=some.id \
-Dfile=your-artifact-1.0.jar \
[-DpomFile=your-pom.xml] \
[-DgroupId=org.some.group] \
[-DartifactId=your-artifact] \
[-Dversion=1.0] \
[-Dpackaging=jar] \
[-Dclassifier=test] \
[-DgeneratePom=true] \
[-DgeneratePom.description="My Project Description"] \
[-DrepositoryLayout=legacy] \
[-DuniqueVersion=false]
1)については、休止状態のプロジェクト全体に対して単一のpomを作成することも、複数のpomを作成することもできることを理解しています。外部ライブラリごとに1つと思います。たとえば、cglib-2.2.jarは独自のpomになる可能性があります。これは、springにも同様の依存関係があることを知っているため、(2)x cglib(s)がないために、1つのcglibがあり、それを次のように含めます。私のorg.springとorg.hibernate pomの依存関係。
2)については、ファイルリストを読み取り、どこか別のリストからGAV情報を解析して、1つずつリポジトリにダンプするシェルスクリプトを記述して、各jarがプロジェクトのPOMの依存関係としてリストされると思います。
この最後の部分は私が混乱しているものです... org.SpringとHibernateを別のorg.Hibernateに1つのグループとしてデプロイすると、依存関係(cglibなど)間に衝突が発生する可能性がありますか?
だから私は私の質問だと思います:
ダウンロードしたSpringリリースとHibernateリリースをローカルのネクサスリポジトリにデプロイして、プロジェクトですばやく使用できるようにするための最も簡単、最速、最小の労力が必要な方法は何ですか?(あまりにも多くのpomであまりにも多くの依存関係をリストする必要はありません。)
編集:
私が何をしたいのかについての明確化 ローカルサーバーで実行されている1つのNexus Managerがあります(インターネットにアクセスできます)。Spring&Hibernateを実行するために必要なすべての依存関係をインターネットリポジトリからダウンロードできるようにしたい。私はこれをしたいONCE、その後、彼らは私の中で座っていINTERNAL私がするリポジトリ(ネクサス)、NEVER EVER中央は、JBoss、春や他に話をPUBLICの私がするまでリポジトリ特異的にそれを可能にします。スイッチのようにオン/オフできるようにしたい。
ONモード=「パブリックリポジトリから依存関係を取得できます」
OFFモード=「外部に接続してはなりません」
これは次のようにすることで達成できるようです:
ネクサスで
1)グループを設定する
2)必要な外部リポジトリーごとにプロキシーをセットアップします
3)すべてのプロキシを1つのグループに入れます
開発ワークステーション上(これは私がよくわからない部分です)
1)ここで説明するように、settings.xmlを編集して中央の場所を上書きし、リポジトリをローカルのネクサスグループにポイントします。
そしてここ
そしてここ
http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html
2)依存関係を取得できるように、mvn installまたはcompileなどを実行します。
その後はどうなるのかよくわかりません。どういうわけか、MavenにローカルのNexusリポジトリの1つで外部グループをミラーリングするように指示しますか?私はそれを試し、成功したら戻ってきて私の解決策を投稿すると思います。それまでの間、コメントやアドバイスをお気軽にどうぞ。
Nexusには調達機能があり、上流から元のpomを使用しながら、外部からリポジトリに何が入るかを厳密に制御します。それらがないと、推移的な依存関係情報がすべて失われ、おそらくビルドまたはランタイムデプロイメントが将来中断する可能性があります。
JFrog Artifactoryには、無料で同様の機能(組み込み/除外パターンを定義できます)があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加