Мы поддерживаем большое количество сервисов SpringBoot, созданных с помощью Maven. Многие из этих сервисов имеют зависимости, которые содержат только классы JAXB, используемые для маршаллинга и демаршаллинга XML. Все они были созданы с использованием пакетов «javax». Сейчас мы обновляемся до SpringBoot 3, для которого теперь требуются пакеты «jakarta».
В конечном итоге исходный код этих зависимостей будет преобразован, но это произойдет не быстро. Тем временем мы пытаемся использовать Eclipse «transformer-maven-plugin» для преобразования. Этот плагин концептуально прост, но есть один аспект, который представляет некоторые трудности. Сначала я не мог понять, как преобразовать зависимости, чтобы преобразованные классы были доступны во время компиляции. Без этого некоторый код в службе не скомпилируется.
В конце концов я понял, что могу запустить плагин преобразователя на этапе «генерации исходных кодов», а затем использовать «maven-antrun». -plugin» для извлечения преобразованных jar-файлов в «цель/классы». Когда я это делаю, все ошибки компиляции устраняются.
Однако после этапа компиляции, когда запускается цель «переупаковки» плагина Spring-boot-maven, происходит сбой с такая ошибка:
Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:3.2.5:repackage (default) on project ...:
Execution default of goal org.springframework.boot:spring-boot-maven-plugin:3.2.5:repackage failed:
Source must refer to an existing file, got C:\...\target\classes
Я никогда раньше не видел этого сообщения об ошибке. Ссылка на «цель/классы» в конце позволяет с уверенностью предположить, что это связано с тем, что я сделал с плагином преобразователя.
Мне все время интересно, есть ли другое решение проблемы «отсутствующих ссылка» для плагина трансформера. Сброс преобразованных классов в целевые/классы ДО этапа компиляции показался мне странным, но я обнаружил, что это работает, по крайней мере, на этапе компиляции. Есть ли лучший способ сделать эти преобразованные классы доступными во время компиляции, помимо помещения их в целевые классы?
Вот несколько выдержек из того, что я сделал.Это часть определения плагина-трансформера:
org.eclipse.transformer
transformer-maven-plugin
1.0.0
true
false
${project.build.directory}/transformed
true
thing
generate-sources
jar
...
thing
1.0.55
jar
thing
Для каждой из нескольких зависимостей необходимо преобразовать несколько блоков выполнения.
Это отрывок из определения плагина antrun, который извлекает банки в целевые/классы:
org.apache.maven.plugins
maven-antrun-plugin
1.8
prepare
process-resources
run
Это наше текущее определение плагина Spring-boot-maven:
org.springframework.boot
spring-boot-maven-plugin
3.2.5
repackage
fat
ZIP
true
ZIP
true
Подробнее здесь: https://stackoverflow.com/questions/790 ... r-to-an-ex
Поместив преобразованные классы в цель/классы, получите ошибку «Источник должен ссылаться на существующий файл» из цели ⇐ JAVA
Программисты JAVA общаются здесь
1728402304
Anonymous
Мы поддерживаем большое количество сервисов SpringBoot, созданных с помощью Maven. Многие из этих сервисов имеют зависимости, которые содержат только классы JAXB, используемые для маршаллинга и демаршаллинга XML. Все они были созданы с использованием пакетов «javax». Сейчас мы обновляемся до SpringBoot 3, для которого теперь требуются пакеты «jakarta».
В конечном итоге исходный код этих зависимостей будет преобразован, но это произойдет не быстро. Тем временем мы пытаемся использовать Eclipse «transformer-maven-plugin» для преобразования. Этот плагин концептуально прост, но есть один аспект, который представляет некоторые трудности. Сначала я не мог понять, как преобразовать зависимости, чтобы преобразованные классы были доступны во время компиляции. Без этого некоторый код в службе не скомпилируется.
В конце концов я понял, что могу запустить плагин преобразователя на этапе «генерации исходных кодов», а затем использовать «maven-antrun». -plugin» для извлечения преобразованных jar-файлов в «цель/классы». Когда я это делаю, все ошибки компиляции устраняются.
Однако после этапа компиляции, когда запускается цель «переупаковки» плагина Spring-boot-maven, происходит сбой с такая ошибка:
Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:3.2.5:repackage (default) on project ...:
Execution default of goal org.springframework.boot:spring-boot-maven-plugin:3.2.5:repackage failed:
Source must refer to an existing file, got C:\...\target\classes
Я никогда раньше не видел этого сообщения об ошибке. Ссылка на «цель/классы» в конце позволяет с уверенностью предположить, что это связано с тем, что я сделал с плагином преобразователя.
Мне все время интересно, есть ли другое решение проблемы «отсутствующих ссылка» для плагина трансформера. Сброс преобразованных классов в целевые/классы ДО этапа компиляции показался мне странным, но я обнаружил, что это работает, по крайней мере, на этапе компиляции. Есть ли лучший способ сделать эти преобразованные классы доступными во время компиляции, помимо помещения их в целевые классы?
Вот несколько выдержек из того, что я сделал.Это часть определения плагина-трансформера:
org.eclipse.transformer
transformer-maven-plugin
1.0.0
true
false
${project.build.directory}/transformed
true
thing
generate-sources
jar
...
thing
1.0.55
jar
thing
Для каждой из нескольких зависимостей необходимо преобразовать несколько блоков выполнения.
Это отрывок из определения плагина antrun, который извлекает банки в целевые/классы:
org.apache.maven.plugins
maven-antrun-plugin
1.8
prepare
process-resources
run
Это наше текущее определение плагина Spring-boot-maven:
org.springframework.boot
spring-boot-maven-plugin
3.2.5
repackage
fat
ZIP
true
ZIP
true
Подробнее здесь: [url]https://stackoverflow.com/questions/79066771/putting-transformed-classes-into-target-classes-get-source-must-refer-to-an-ex[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия