Я последовал совету в комментарии и установил уровень журнала в applicaion.yml
- info
, и он распечатал ошибку. Распечатанная ошибка была в следующем.
com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor
Искал переполнение стека и нашел это решение, добавив нижеприведенное к энтитам, и это сработало как очарование.
Не уклоняйтесь от плагина Antrun. Просто, потому что некоторые люди склонны думать, что Муравей и Знаток находятся в оппозиции, они не. Используйте задачу копии, если необходимо выполнить некоторую неизбежную одноразовую настройку:
<project>
[...]
<build>
<plugins>
[...]
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>deploy</phase>
<configuration>
<tasks>
<!--
Place any Ant task here. You can add anything
you can add between <target> and </target> in a
build.xml.
-->
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
В ответе на этот вопрос я фокусируюсь на деталях того, что Вы спросили. Как я копирую файл? Вопрос и имя переменной приводят меня к большие вопросы как: "Есть ли лучший способ иметь дело с настройкой сервера?" Используйте Знатока в качестве системы сборки для генерации развертываемого артефакта, затем выполните эти настройки или в отдельных модулях или где-то в другом месте полностью. При совместном использовании немного большего количества среды сборки мог бы быть лучший путь - существуют плагины для настройки многих серверов. Вы могли присоединить блок, который распакован в корне сервера? Какой сервер Вы используете?
Снова, я уверен, что существует лучший путь.
Я могу только предположить, что Ваш $ {project.server.config} свойство является чем-то пользовательским, определил и за пределами стандартного расположения каталога.
Если так, тогда я использовал бы задачу копии.
Ну, знаток, как предполагается, не хорош в выполнении прекрасных детализированных задач, это не язык сценариев как удар или муравей, это довольно декларативно - Вы говорите - мне нужна война или ухо, и Вы получаете его. Однако, если необходимо настроить, как война или ухо должны быть похожими внутри, у Вас есть проблема. Это является просто не процедурным как муравей, но описание. Это имеет некоторых профессионалов в начале и могло иметь много недостатков в конце.
я предполагаю, что начальное понятие состояло в том, чтобы иметь прекрасные плагины, это "просто работает", но действительность отличается, если Вы делаете нестандартный материал.
, Если Вы однако прикладываете достаточно усилий к своим англичанам и немного пользовательских плагинов, Вы доберетесь, намного лучшая среда сборки как с муравьем, например (зависит от Вас проект, конечно, но это становится более верным для больших проектов).
Иначе должен связать эти вещи в артефакт с помощью плагина блока. Затем можно использовать плагин зависимости для распаковки этих файлов, где Вы хотите. Существуют также цели копии в плагине зависимости для копирования артефактов.
Приведенное выше решение для муравья проще всего настроить, но мне повезло с использованием maven-upload-plugin от Atlassian. Мне не удалось найти хорошую документацию, вот как я ее использую:
<build>
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-upload-plugin</artifactId>
<version>1.1</version>
<configuration>
<resourceSrc>
${project.build.directory}/${project.build.finalName}.${project.packaging}
</resourceSrc>
<resourceDest>${jboss.deployDir}</resourceDest>
<serverId>${jboss.host}</serverId>
<url>${jboss.deployUrl}</url>
</configuration>
</plugin>
</build>
Переменные, такие как «$ {jboss.host}», указанные выше, определены в моем ~ / .m2 / settings.xml и активируются с помощью профилей maven. Это решение не ограничено JBoss, это то, что я назвал своими переменными. У меня есть профиль для dev, test и live. Поэтому, чтобы загрузить свое ухо в экземпляр jboss в тестовой среде, я бы выполнил:
mvn upload:upload -P test
Вот фрагмент из settings.xml:
<server>
<id>localhost</id>
<username>username</username>
<password>{Pz+6YRsDJ8dUJD7XE8=} an encrypted password. Supported since maven 2.1</password>
</server>
...
<profiles>
<profile>
<id>dev</id>
<properties>
<jboss.host>localhost</jboss.host>
<jboss.deployDir>/opt/jboss/server/default/deploy/</jboss.deployDir>
<jboss.deployUrl>scp://root@localhost</jboss.deployUrl>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<jboss.host>testserver</jboss.host>
...
Примечания: Репозиторий Atlassian Maven, в котором есть этот плагин, находится здесь: https://maven.atlassian.com/public/
Я рекомендую скачать исходники и просмотреть документацию внутри, чтобы увидеть все функции, которые предоставляет плагин.
`
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.3</version>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include> **/*.properties</include>
</includes>
</resource>
</resources>
...
</build>
Подводя итог некоторым прекрасным ответам, приведенным выше: Maven разработан для создания модулей и копирования результатов в репозиторий Maven. Любое копирование модулей во входной каталог развертывания / установщика должно выполняться вне контекста основных функций Maven, например, с помощью команды Ant / Maven copy .