/* * Copyright 2011 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.gradle.api.artifacts.repositories; import java.io.File; import java.util.Set; /** * A repository that looks into a number of directories for artifacts. The artifacts are expected to be located in the root of the specified directories. * The repository ignores any group/organization information specified in the dependency section of your build script. If you only use this kind of * resolver you can specify your dependencies like <code>:junit:4.8.1</code> instead of <code>junit:junit:4.8.1</code>. * * <p>To resolve a dependency, this resolver looks for one of the following files. It will return the first match it finds: * * <ul> * * <li>[artifact]-[version].[ext] * <li>[artifact]-[version]-[classifier].[ext] * <li>[artifact].[ext] * <li>[artifact]-[classifier].[ext] * * </ul> * * So, for example, to resolve <code>:junit:junit:4.8.1</code>, this repository will look for <code>junit-4.8.1.jar</code> and then <code>junit.jar</code>. */ public interface FlatDirectoryArtifactRepository extends ArtifactRepository { /** * Returns the directories where this repository will look for artifacts. * * @return The directories. Never null. */ Set<File> getDirs(); /** * Adds a directory where this repository will look for artifacts. * * <p>The provided value are evaluated as per {@link org.gradle.api.Project#file(Object)}. * * @param dir the directory */ void dir(Object dir); /** * Adds some directories where this repository will look for artifacts. * * <p>The provided values are evaluated as per {@link org.gradle.api.Project#files(Object...)}. * * @param dirs the directories. */ void dirs(Object... dirs); /** * Sets the directories where this repository will look for artifacts. * * @param dirs the directories. * @since 4.0 */ void setDirs(Set<File> dirs); /** * Sets the directories where this repository will look for artifacts. * * <p>The provided values are evaluated as per {@link org.gradle.api.Project#files(Object...)}. * * @param dirs the directories. */ void setDirs(Iterable<?> dirs); }