Я недавно создал циклическую структуру данных для представления восьми кардинальных и порядковых направлений. Его полезное для каждого направления для знания его соседей. Например, Направление. Север знает то Направление. 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);
}
Это оказалось довольно удобным и сделало много вещей намного менее сложным.
Как правило, для проекта 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
. Хотя это совершенно верно и содержимое двух каталогов будет объединено, может возникнуть путаница, если файл определен в обоих.
Maven хочет, чтобы такая информация находилась в папке ресурсов. См. здесь для получения дополнительной информации.
Project
|-- pom.xml
`-- src
`-- main
|-- java
`-- resources
Для указания дополнительных каталогов ресурсов см. здесь .
Я косвенно отвечу на ваш вопрос, сказав, что если вы уже совершили переход на Maven2, я определенно рекомендую использовать подключаемый модуль Archetype. Использование архетипа webapp гарантирует, что вы получите каноническую структуру каталогов. Любой, кто смотрит на ваш исходный код, сразу же узнает, где все находится, и не возникнет никаких вопросов относительно того, куда идут ваши файлы.