Предположим, исходный файл hw.java
Неправильный выбор имени файла класса в Java:)
Я уже некоторое время гуглю, все решения требуют от меня фиксированной установки каталога.
Не совсем исправлено, но «горячо предложено» (Maven полагается на соглашения - макет каталога является одним из них - и настоятельно рекомендуется следовать соглашениям Maven, если вы решите его использовать, меньше работы, меньше хлопот).
Но я хочу сохранить hw.java в текущем каталоге (.) (...)
Я думаю, вам понадобится хотя бы каталог под pom.xml
для хранения исходных текстов Java.
Могу ли я иметь такую свободу с maven?
Maven гибок и по умолчанию настраивается , но вы должны действительно использовать соглашения (или другой инструмент, чем Maven). Я предлагаю создать свой проект, используя архетип для простого проекта:
mvn archetype:generate -B -DgroupId=com.stackoverflow \
-DartifactId=Q2841166 \
-Dversion=1.0-SNAPSHOT
Затем поместите ваши источники в src/main/java
(в соответствующем пакете) и запустите mvn install
.
Обновление: Похоже, вы не понимаете, о чем я говорю, или просто не хотите слушать. В этом случае не стесняйтесь изменять элемент build
как задокументированный в ссылку POM (как я уже говорил, значения по умолчанию НЕ ОБЯЗАТЕЛЬНЫ ):
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
...
<build>
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
<scriptSourceDirectory>${basedir}/src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>
...
</build>
</project>
Теперь, поскольку изменение этих значений по умолчанию не рекомендуется, потому что Maven не поощряет это делать, потому что это плохая идея, если вы не имеете дело с устаревшим проектом, потому что это бесполезная работа, если вам не нужно, потому что это вызовет больше неприятностей, чем пользы, не ожидайте найти «учебник» по этому поводу. Позвольте мне перефразировать это: то, о чем вы просите, - это учебник «как выстрелить себе в ногу» , и это просто смешно.
Последнее: если Maven не работает так, как вы хотите, не используйте Maven, это лучший совет, который я могу вам дать.