Как сохранить структуру maven при создании source-jar

Я использую maven-source-plugin для упаковки исходников проекта. Обычно вы получаете все из основных /java и основных / ресурсов, упакованных вместе в один корень.

Я хочу сохранить структуру проекта в final -source.jar - как src/main/java/**, src/main/resources/** и тестовая часть тоже.

Я попробовал конфигурацию включений, которая не помогла

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
        <id>attach-sources</id>
        <goals>
            <goal>jar-no-fork</goal>
        </goals>
            <configuration>
                <includes>src/main/**, src/resources/**</includes>
            </configuration>
        </execution>
    </executions>
</plugin>

Я получаю ошибку

[INFO] Failed to configure plugin parameters for: org.apache.maven.plugins:maven-source-plugin:2.3

(found static expression: 'src/main/**, src/resources/**' which may act as a default value).

Cause: Cannot assign configuration entry 'includes' to 'class [Ljava.lang.String;' from 'src/main/**, src/resources/**', which is of type class java.lang.String

Это действительно ошибка "найдено статическое выражение" или конфигурация неверна? Или есть другой способ добиться этого?


редактировать

Таким образом, при изменении POM, как в подсказке от @carlspring, ошибка исчезает, но в результате ни исходные файлы, ни файлы ресурсов не находятся в результирующих исходных файлах.jar

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar-no-fork</goal>
            </goals>
            <configuration>
        <includes>
        <include>src/main/**</include>
        <include>src/test/**</include>
        </includes>
            </configuration>
        </execution>
    </executions>
</plugin>

Может быть, подсказка в описании опции include:

Список файлов для включения. Указывается как шаблоны набора файлов, относящиеся к входному каталогу, содержимое которого упаковывается в JAR.

Это означает, что если входной каталог для jar-no-fork - src/main/java|resources, то на мой вопрос нужно ответить НЕТ ПУТИ

1 ответ

Вы используете <includes/> неправильно. Это не список через запятую. Каждая запись должна быть определена как ее собственная <include/>, Попробуйте это так:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
        <id>attach-sources</id>
        <goals>
            <goal>jar-no-fork</goal>
        </goals>
            <configuration>
                <includes>
                    <include>src/main/**</include>
                    <include>src/resources/**</include>
                </includes>
            </configuration>
        </execution>
    </executions>
</plugin>

Кроме того, я бы порекомендовал вам использовать maven-assembly-plugin вместо этого и создайте источники с этим, поскольку это было бы намного легче, по моему мнению. Посмотрите здесь.

Другие вопросы по тегам