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