View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.api;
20  
21  import java.nio.file.Path;
22  
23  import org.apache.maven.api.annotations.Experimental;
24  import org.apache.maven.api.annotations.Immutable;
25  import org.apache.maven.api.annotations.Nonnull;
26  
27  /**
28   * <p>The <dfn>local repository</dfn> is a directory on the developer's machine where
29   * Maven stores all the downloaded artifacts (such as dependencies, plugins,
30   * and project artifacts). When Maven builds a project, it first checks the
31   * local repository to see if the required artifacts are already available.
32   * If the artifacts are found locally, Maven uses them directly, which speeds
33   * up the build process by avoiding unnecessary downloads.</p>
34   *
35   * <p>By default, the local repository is located in the {@code .m2/repository}
36   * directory within the user's home directory ({@code ~/.m2/repository} on
37   * Unix-like systems or {@code C:\Users\YourName\.m2\repository} on Windows).
38   * The location of the local repository can be customized in the
39   * {@code settings.xml} file.</p>
40   *
41   * @since 4.0.0
42   * @see Repository
43   * @see org.apache.maven.api.settings.Settings
44   */
45  @Experimental
46  @Immutable
47  public interface LocalRepository extends Repository {
48  
49      @Nonnull
50      Path getPath();
51  }