このコンテンツは選択した言語では利用できません。

4.3. Locating Maven Artifacts at Run Time


Overview

At run time the container strikes a balance between accessing artifacts locally and downloading artifacts from remote repositories. The container will first search all systems local to the container. If it cannot locate the artifacts in a local repository, it will then search remote repositories.
For default features, the artifacts are always stored in the container's system repository. For non-default features, third party bundles, or customer developed bundles, it is likely that Maven will need to search remote repositories to locate the artifacts.

Procedure for locating artifacts

Figure 4.2, “How the Container Locates Artifacts at Run Time” shows an overview of the procedure that Red Hat JBoss Fuse follows when a feature or bundle is installed at run time.

Figure 4.2. How the Container Locates Artifacts at Run Time

The steps followed to locate the required Maven artifacts are:
  1. The container searches for artifacts in the system repository.
    This repository contains all of the artifacts provided with the JBoss Fuse installation. The system repository is located at EsbInstallDir/system.
  2. If an artifact is not available in the system repository, the container searches any other configured default repositories.
    JBoss Fuse allows you to specify one or more repositories into which you can place artifacts. For example, you could use a shared folder as a default repository that provides an easy way to distribute bundles to remote machines. See the section called “Default repositories” for details on configuring the default repositories.
  3. If the artifact is not available in the default repositories, the container searches the Maven local repository.
    The default location of the local repository is the .m2/repository/ directory under the user's home directory. See the section called “Local repository” for details on configuring the local repository.
  4. If the artifact is not available in any of the local repositories, the container searches the remote repositories specified in the JBoss Fuse configuration.
    The remote repositories are specified by the org.ops4j.pax.url.mvn.repositories property in the org.ops4j.pax.url.mvn. PID. See the section called “Remote repositories” for details on configuring the remote repositories that the container will check.
    Note
    If an artifact is found in a remote repository, it is automatically downloaded and installed into the local repository.

Default repositories

The default repositories are a list of repositories that the container always checks first. The list is specified by the org.ops4j.pax.url.mvn.defaultRepositories in the org.ops4j.pax.url.mvn PID. The property's initial setting is a single entry for the container's system repository as shown in Example 4.1, “Initial Setting for a Container's Default Repositories”.

Example 4.1. Initial Setting for a Container's Default Repositories

org.ops4j.pax.url.mvn.defaultRepositories=file:${karaf.home}/${karaf.default.repository}@snapshots
Copy to Clipboard Toggle word wrap
The org.ops4j.pax.url.mvn.defaultRepositories property is a comma-separated list, so you can specify multiple default repositories. You can specify the repository location using a URL with a file:, http:, or https: scheme. You can optionally add the following suffixes to the URL:
  • @snapshots—allow snapshot versions to be read from the repository
  • @noreleases—do not allow release versions to be read from the repository
Note
It is recommended that you leave the container's system repository as the first entry in the list.

Local repository

The container resolves the location of the local repository in the following manner:
  1. Use the location specified by the org.ops4j.pax.url.mvn.localRepository.localRepository property in the org.ops4j.pax.url.mvn PID.
  2. Otherwise, use the location specified by the localRepository element in the settings.xml file specified by the org.ops4j.pax.url.mvn.localRepository.settings property in the org.ops4j.pax.url.mvn PID.
  3. Otherwise, use the location specified by the localRepository element in the .m2/settings.xml file located under the user's home directory.
  4. Otherwise, use the location specified by the localRepository element in the M2_HOME/conf/settings.xml file.
  5. Otherwise, the default location is .m2/repository/ under the user's home directory.

Remote repositories

The remote repositories checked by the container are specified by the org.ops4j.pax.url.mvn.repositories property in the org.ops4j.pax.url.mvn PID. The repositories are specified as a comma-separated list as shown in Example 4.2, “Setting a Container's Remote Repositories”.

Example 4.2. Setting a Container's Remote Repositories

org.ops4j.pax.url.mvn.repositories= \
    http://repo1.maven.org/maven2, \
    http://repo.fusesource.com/maven2, \
    http://repo.fusesource.com/maven2-snapshot@snapshots@noreleases, \
    http://repo.fusesource.com/nexus/content/repositories/releases, \
    http://repo.fusesource.com/nexus/content/repositories/snapshots@snapshots@noreleases, \
    http://repository.apache.org/content/groups/snapshots-group@snapshots@noreleases, \
    http://repository.ops4j.org/maven2, \
    http://svn.apache.org/repos/asf/servicemix/m2-repo, \
    http://repository.springsource.com/maven/bundles/release, \
    http://repository.springsource.com/maven/bundles/external
Copy to Clipboard Toggle word wrap
You can optionally add the following suffixes to the URsL:
  • @snapshots—allow snapshot versions to be read from the repository
  • @noreleases—do not allow release versions to be read from the repository
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat