2012-04-17 24 views
1

私は会社のローカルMavenリポジトリを使う必要があります。さて、スーパーPOMにはrepo1.maven.org/maven2が含まれています。これをオフにしたいのです。Maven - スーパーPOMを設定する方法

ここで、http://maven.apache.org/guides/introduction/introduction-to-the-pom.htmlは、「すべてのPOMが明示的に設定されていない限り、スーパーPOMを拡張します」と表示します。

明示的に設定するにはどうすればよいですか?

(Mavenの3.0.4)

答えて

2

私は「ローカルリポジトリ」であなたは$ HOME/.m2 /リポジトリのようにあなたの会社/オフィスで利用できるリポジトリではなく、ローカルリポジトリを意味していること、と仮定しています。

トリックを行いますすべてのリポジトリのミラーとして、ユーザーのsettings.xmlファイルにリポジトリを定義します。すべてのプロジェクトは、スーパーPOMが、Mavenのから継承する方法

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
         http://maven.apache.org/xsd/settings-1.0.0.xsd"> 

     <mirrors> 
     <mirror> 
      <id>companyrepo</id> 
      <url>http://localrepo.com/repo</url> 
      <mirrorOf>*</mirrorOf> 
     </mirror> 
     </mirrors> 
    </settings> 

はrepo1.mavenに接続しないであろう.org

+0

私の質問ではなく、興味深いことに、これは私の問題に答えました。 (私はまだスーパーPOMを設定する方法はまだ分かりませんが、もう必要ありません:) – Falko

+0

SuperPOMはmaven jarの中のどこかにあります。指定されたjarを見つけ、pomとjarファイルを再度修正する必要があります。しかし、私の意見では、それは意味をなさない... –

+0

それは私がそれが行く方法であると信じさせた前述のdocuの "明示的に設定されていない"でした。私はそれをやめた。 – Falko

0

スーパーPOMは、その機能がプロジェクトPOM(JavaのObjectクラスなど)によって明示的に提供されていない限り、すべてのMaven POMに広く使用される機能を提供します。

このように、パブリックリポジトリの使用を避けるため、POMで使用する(ローカル)リポジトリを指定することができます。しかし、これを行うより良い方法は、settings.xmlファイルにローカルリポジトリを指定することです。これにより、ユーザ名/パスワードをソースコードリポジトリにコミットせずにローカルリポジトリをパスワードで保護し、手動で共有することができます。

0

あなたが探しているものはMavenのオフラインモードです。コンソールを使用してMavenを呼び出す場合は、-oまたは--offlineオプションで有効にすることができます。常に有効にしたい場合はsettings.xml<offline>true</offline>を追加してください。

ほとんどの極端なオプションは、(理由により)オフラインモードを使用できない場合、centralというIDのリポジトリ定義を上書きすることです。例:

<repository> 
    <id>central</id> 
    <url>file://C:\tmprepo</url> 
</repository> 

オフラインモードベースのソリューションをお勧めします。それはきれいでクリアです。

+0

申し訳ありませんが、私の処方はあなたを惑わしました。 Tomasz氏が正しく想定していたように、私は会社のローカルリポジトリについて話をしました。だから、オフラインモードdoesntは私のためにそれをしません。 – Falko

関連する問題