Настройка исходных каталогов Maven для проекта полиглота - PullRequest
3 голосов
/ 02 января 2012

У меня есть проект Maven (в Eclipse с использованием плагина m2eclipse), который содержит код на двух разных языках (Java и Clojure).

В идеале я бы хотел две отдельные папки с исходными текстами для двух языков:

  • SRC / главная / Java
  • SRC / главная / CLJ

Eclipse рад, что в проекте определены две исходные директории. Однако, насколько я могу понять, Maven поддерживает только один исходный каталог следующим образом:

<build>
  ....
  <sourceDirectory>src/main/java</sourceDirectory>
  ....
</build>

Если я добавлю второй sourceDirectory в pom.xml, я получу ошибку .....

Есть ли рекомендуемый способ настройки такого типа проекта полиглота в Maven?

Ответы [ 4 ]

4 голосов
/ 02 января 2012

Я не верю, что вам нужно это делать; плагин Clojure уже должен знать, как найти источник Clojure (хотя по умолчанию в IIRC используется src / main / clojure).

См. здесь для некоторых деталей.

2 голосов
/ 02 января 2012

Точка, sourceDirectory для Java. В основном, по крайней мере. Каталог источников Clojure зависит от используемого вами плагина; например https://github.com/talios/clojure-maven-plugin использует следующие подтэги:

<configuration>
  <sourceDirectories>
    <sourceDirectory>src/main/clojure</sourceDirectory>
  </sourceDirectories>
  <testSourceDirectories>
    <testSourceDirectory>src/test/clojure</testSourceDirectory>
  </testSourceDirectories>
</configuration>

Это значения по умолчанию, поэтому если вы используете clojure вместо clj, у вас все будет в порядке без конфигурации.

1 голос
/ 02 января 2012

Хорошо, я нашел достаточно хороший способ сделать эту работу: хитрость заключается в том, чтобы классифицировать ваши исходные каталоги Clojure как каталоги ресурсов в Maven .Таким образом, файлы .clj включаются в сгенерированный файл .jar, как и следовало ожидать.

Соответствующая часть файла pom.xml:

<build>
        ....
        <sourceDirectory>src/main/java</sourceDirectory>

        <resources>
            <resource>
                <directory>src/main/clojure</directory>
            </resource>
        </resources>

        <testResources>
            <testResource>
                <directory>src/test/clojure</directory>
            </testResource>
        </testResources>
</build>
1 голос
/ 02 января 2012

Плагин Build Helper Maven позволяет добавлять дополнительные исходные каталоги.

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>src/main/clj</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...