Файл jaxb.properties из пакета java, не включенный в сборку Maven .war - PullRequest
10 голосов
/ 24 ноября 2011

Я поместил файл jaxb.properties в пакет, где мои классы находятся там, где я использую другого провайдера JAXB (как видно по этой ссылке Указание EclipseLink MOXy в качестве вашего провайдера JAXB ), который я использую для отмены сортировки.

Происходит следующее:

  • Когда я запускаю проект из Eclipse / STS, демаршаллинг работает нормально, так как он читает файл jaxb.properties.

  • Когда я собираю проект с Maven 3 (mvn clean install), файл jaxb.properties не включается в пакет - поэтому эти классы не могут успешно удалить файлы XML успешно.Затем мне нужно вручную поместить файл jaxb.properties, перейдя в развернутое приложение, введя пакет и вставив файл.

Решения?Спасибо!

Ответы [ 3 ]

12 голосов
/ 07 мая 2012

Как подсказали другие, для достижения этой цели лучше всего использовать maven-resources-plugin .

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.5</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/classes/path/to/model/</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${basedir}/src/main/resources/</directory>
                                <includes>
                                    <include>jaxb.properties</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin> 

Поместите файл jaxb.properties в directory и укажите местоположение пакета (outputDirectory), и это скопирует ресурс до упаковки.

12 голосов
/ 24 ноября 2011

Вы должны поместить ресурсы (например, jaxb.properties) в src/main/resources.
Я пока не могу найти никаких доказательств / документации, но я уверен, что maven будет компилировать и копировать только файлы .java из папки src.

Из документации видно, что компиляция будет только компилировать, а не копировать ничего. Поэтому будут обрабатываться только. java файлы в каталоге src / main / java, а все остальное игнорируется.

Ресурсы обрабатываются resources: resources , которая выполняется автоматически. Эта цель копирует ресурсы из src/main/resources.

Компилировать компилирует только файлы из папки src. Файлы ресурсов не являются файлами Java и поэтому не будут скопированы / скомпилированы в выходной каталог.

1 голос
/ 08 января 2018

добавить в свой pom.xml

    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/jaxb.properties</include>
            </includes>
        </resource>         
    </resources>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...