Знаток: Включая папку META-INF в папке классов

Я недавно создал циклическую структуру данных для представления восьми кардинальных и порядковых направлений. Его полезное для каждого направления для знания его соседей. Например, Направление. Север знает то Направление. NorthEast и Направление. NorthWest являются его соседями.

Это циклически, потому что каждый neighor знает своих соседей, пока он не распространяется вокруг, полное колебание ("->" представляет по часовой стрелке):

Север-> NorthEast-> Восток-> SouthEast-> Юг-> SouthWest-> Запад-> NorthWest-> Север->...

Уведомление мы возвратились на Север.

, Который позволяет мне делать материал как это (в C#):

public class Direction
{
    ...
    public IEnumerable<Direction> WithTwoNeighbors
    {
        get {
           yield return this;
           yield return this.CounterClockwise;
           yield return this.Clockwise;
        }
    }
}
...
public void TryToMove (Direction dir)
{
    dir = dir.WithTwoNeighbors.Where (d => CanMove (d)).First ()
    Move (dir);
}

Это оказалось довольно удобным и сделало много вещей намного менее сложным.

40
задан Christian Conti-Vock 27 April 2012 в 17:46
поделиться

3 ответа

Как правило, для проекта Maven на основе Java файлы, не являющиеся исходными, должны находиться в подкаталоге src / main / resources проекта. Содержимое этого каталога resources копируется в выходной каталог (по умолчанию target / classes ) на этапе сборки process-resources .

Для проектов Maven WAR это немного сложнее: есть также каталог src / main / webapp , в котором Maven ожидает найти WEB-INF / web.xml . Чтобы создать файл WAR, этот файл должен существовать; в противном случае вы увидите следующее сообщение об ошибке:

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)

Поскольку каталог WEB-INF должен существовать в src / main / webapp , я бы рекомендовал избегать его повторного определения в src / main / resources . Хотя это совершенно верно и содержимое двух каталогов будет объединено, может возникнуть путаница, если файл определен в обоих.

82
ответ дан 27 November 2019 в 01:18
поделиться

Maven хочет, чтобы такая информация находилась в папке ресурсов. См. здесь для получения дополнительной информации.

Project
|-- pom.xml
`-- src
    `-- main
        |-- java
        `-- resources

Для указания дополнительных каталогов ресурсов см. здесь .

11
ответ дан 27 November 2019 в 01:18
поделиться

Я косвенно отвечу на ваш вопрос, сказав, что если вы уже совершили переход на Maven2, я определенно рекомендую использовать подключаемый модуль Archetype. Использование архетипа webapp гарантирует, что вы получите каноническую структуру каталогов. Любой, кто смотрит на ваш исходный код, сразу же узнает, где все находится, и не возникнет никаких вопросов относительно того, куда идут ваши файлы.

4
ответ дан 27 November 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: