Как я могу создать привет мировой класс с Maven? - PullRequest
1 голос
/ 15 мая 2010

Теперь исходный код готов, как его собрать с помощью maven?

Предположим, исходный файл hw.java

Я уже некоторое время гуглю, все решения требуют от меня фиксированной установки каталога.

Но я хочу сохранить hw.java в текущем каталоге (.), а затем:

vi pom.xml
...
mkdir build
cd build
maven ...

Могу ли я иметь такую ​​свободу с maven?

Ответы [ 2 ]

1 голос
/ 16 мая 2010

Предположим, исходный файл 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, это лучший совет, который я могу вам дать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...