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.plugin.testing;
20  
21  import java.lang.annotation.ElementType;
22  import java.lang.annotation.Inherited;
23  import java.lang.annotation.Retention;
24  import java.lang.annotation.RetentionPolicy;
25  import java.lang.annotation.Target;
26  
27  /**
28   * Specifies the base directory for test resources in Maven plugin tests.
29   * This annotation can be applied to test methods to define where test resources are located.
30   *
31   ** <p>Example usage:</p>
32   * <pre>
33   * {@code
34   * @MojoTest
35   * class MyMojoTest {
36   *     @Test
37   *     @Basedir("src/test/resources/specific-test-case")
38   *     @InjectMojo(goal = "compile")
39   *     void testSpecificCase(MyMojo mojo) {
40   *         // Test resources will be loaded from src/test/resources/specific-test-case
41   *         mojo.execute();
42   *     }
43   * }
44   * }
45   * </pre>
46   *
47   * @see MojoTest
48   * @see MojoExtension
49   * @since 3.4.0
50   */
51  @Retention(RetentionPolicy.RUNTIME)
52  @Inherited
53  @Target(ElementType.METHOD)
54  public @interface Basedir {
55      String value() default "";
56  }