2

私の会社では、Nexus サーバーを使用してアーティファクトを取得しています。それは結構です。しかし、会社の Nexus にアクセスできない自宅でも Maven を使用したい場合があります。Maven 設定プロファイルを交換する簡単な方法はありますか? そして、それは簡単に交換できm2eclipseますか?

現時点では、次の settings.xml を使用しています。

<settings
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
      <servers>  
          <server>  
              <id>central</id>  
              <username>company-user</username>  
              <password>company-user</password>  
          </server>  
          <server>  
              <id>mirror</id>  
              <username>company-user</username>  
              <password>company-user</password>  
          </server>  
      </servers>  
      <mirrors>  
        <mirror>  
            <id>mirror</id>  
            <url>https://url.to.company.nexus</url>  
            <mirrorOf>*</mirrorOf>  
        </mirror>  
      </mirrors>  
      <profiles>  
          <profile>  
              <id>defaultprofile</id>  
              <repositories>  
                  <repository>  
                      <id>central</id>  
                    <name>Repository for Company artifacts</name>  
                      <url>https://url.to.company.nexus</url>  
                      <releases>  
                          <enabled>true</enabled>  
                    </releases>  
                      <snapshots>  
                          <enabled>true</enabled>  
                    </snapshots>  
                  </repository>  
              </repositories>  
              <pluginRepositories>  
                  <pluginRepository>  
                      <id>central</id>  
                    <name>Repository for Company artifacts</name>  
                      <url>https://url.to.company.nexus</url>  
                      <releases>  
                          <enabled>true</enabled>  
                    </releases>  
                      <snapshots>  
                          <enabled>true</enabled>  
                    </snapshots>  
                  </pluginRepository>  
              </pluginRepositories>  
              <properties>  
                  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
              </properties>  
              <activation>  
                  <activeByDefault>true</activeByDefault>  
              </activation>  
          </profile>  
      </profiles>  
      <activeProfiles>  
          <activeProfile>defaultprofile</activeProfile>  
      </activeProfiles>  
</settings>

おそらく新しいプロファイルを に追加する必要があることはわかっていますが、既存のプロファイルがタイムアウトに文句を言わないhttp://repo1.maven.org/ようにするにはどうすればよいですか?mirrors

4

4 に答える 4

3

私の経験では、複数の設定ファイルを用意し、必要に応じてそれらを交換するのが最善です。別の名前のファイルから既存の settings.xml の上にコピーするか、mvn コマンドの -s オプションを使用して設定ファイルを指定します。これを常に入力するのが面倒な場合は、さまざまな設定ファイルを使用して mvn コマンドのエイリアスを作成することもできます。ただし、それは Maven の bash の完了を壊します。そのため、スクリプトを使用して設定ファイルをコピーするだけに固執します。

同じ種類のことが実際にコンテキストのスワッピングに適用されます。たとえば、Git が .gitconfig ファイルを変更するため、これらすべてのファイルの変更をスクリプトまたは git のさまざまなブランチなどにパックできます。

さらに、Nexus をローカルで実行して接続するだけで、すべての外部リポジトリをプロキシすることができます。

于 2013-01-08T05:44:08.593 に答える
2

私が提案できる最善の方法は、Git/SVN/ を使用して settings.xml ファイルをチェックインし、異なるブランチを使用して会社と自宅を分離することです。どちらかを使用

svn switch URL/branches/company
svn switch URL/branches/home

また

git checkout company
git checkout home

mirrorOf パーツをプロファイル領域に配置できないため、プロファイルは機能しません。m2e での変更は、構成ダイアログを介して行うことができます。ただし、これにより、コマンド ラインとの矛盾が生じる可能性があります。

于 2013-01-07T08:52:47.310 に答える
1

残念ながら、プロファイルでミラーを構成することはできません。そのためのオープンリクエストがmavenにあります。JIRA で提案されているように、スクリプトを使用して異なる settings.xml を簡単に切り替えることができます

タイトルの質問への回答については、m2e でプロファイルを簡単に切り替えるには、次の更新サイトからJBoss Tools Maven Profile Managerをインストールすることをお勧めします: http://download.jboss.org/jbosstools/updates/stable/juno/

すべてのプロジェクトで同じグローバル プロファイルを有効にするには:

  • プロジェクトエクスプローラービューで:すべてのmavenプロジェクトを選択します(Ctrl + A)
  • Ctrl+Alt+P を押してプロファイル管理ウィザードを開き、アクティブにするプロファイルを選択します。

これは、各プロジェクト プロパティ ページでアクティブな Maven プロファイルを手動で設定するのと同じで、面倒です。

于 2013-01-07T11:12:46.923 に答える
0

アーティファクトがすでにローカルリポジトリにダウンロードされている場合は、を使用できますmvn -o clean compile ...。これにより、リモートリポジトリルックアップが回避されます。

于 2013-01-07T09:07:59.300 に答える