Как устранить разницу между bootRun и фактическим запуском jar? ⇐ JAVA
Как устранить разницу между bootRun и фактическим запуском jar?
У меня есть приложение Springboot, которое нормально запускается, когда я запускаю bootRun из плагинов Gradle в моей IDE. Однако когда я запускаю bootJar, а затем запускаю java -jar myjar.jar, я получаю неудовлетворенные ошибки зависимостей. Мне кажется странным, что bootRun запускается нормально, но bootJar не создает тот же пакет, который создается при запуске bootRun. Я думаю, что все дело в этой ошибке:
Ошибка создания компонента с именем 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration'
Причина, по которой я это говорю, заключается в том, что когда я добавляю
весна: автоконфигурация: исключать: - org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration в файл application.yaml и перестройте jar, который фактически запускается без исключений UnsatisifiedDependencyExceptions. Однако конечные точки приложения возвращают 404, похоже, они не были инициализированы весной.
Кто-нибудь знает, почему это может произойти? Вот мой файл градиента. Если у кого-нибудь есть идеи, как я могу запустить файл jar, как если бы я запускал bootRun, мне бы очень хотелось услышать, как это сделать. Спасибо!
def props = новые свойства() file("gradle.properties").withInputStream { props.load(it) } def build_username = props.getProperty("build_username") def build_password = props.getProperty("build_password") сценарий сборки { доб. { SpringBootVersion = '2.3.1.ВЫПУСК' } репозитории { знаток { URL-адрес «https://maven.artifactory.mycompany.com ... le-plugins» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... s-release/» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... s-release/» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки // System.out.println("** GRADLEW_USERNAME ** ") // System.out.println(имя пользователя) // System.out.println(пароль) } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... gins-cache» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... -snapshot/» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } зависимости { путь к классам 'com-платформа: mack-перехватчик: 0.1.2' путь к классам 'com.mycompany.sa.xc.ps.models:ps-custinfo:v2.0.5' путь к классам 'com.mycompany.finance.common:hdw2f-common-library:0.1.0+134-SNAPSHOT' classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") путь к классам "org.jfrog.buildinfo:build-info-extractor-gradle:4.24.16" путь к классам 'com.adarshr:gradle-test-logger-plugin:3.0.0' путь к классам 'com.github.dreamhead:moco-runner:1.2.0' путь к классам 'com.github.node-gradle.node:com.github.node-gradle.node.gradle.plugin:7.0.1' путь к классам 'io.spring.dependent-management:io.spring.dependent-management.gradle.plugin:1.1.4' } } } применить плагин: 'jacoco' применить плагин: 'java' применить плагин: «org.springframework.boot» применить плагин: 'maven-publish' применить плагин: «com.github.node-gradle.node» применить плагин: 'io.spring.dependent-management' применить плагин: 'приложение' репозитории { знаток { URL-адрес «https://maven.artifactory.mycompany.com ... le-plugins» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... s-release/» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... s-release/» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки // System.out.println("** GRADLEW_USERNAME ** ") // System.out.println(имя пользователя) // System.out.println(пароль) } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... gins-cache» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... s-snapshot» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... tone-cache» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } зависимости { доб. { SpringBootVersion = '2.3.1.ВЫПУСК' } реализация 'com.moowork.gradle:gradle-node-plugin:1.2.0' реализация 'com.google.code.gson:gson:2.7' реализация 'com.googlecode.json-simple:json-simple:1.1.1' группа реализации: «commons-io», имя: «commons-io», версия: «2.7» реализация "org.springframework.boot:spring-boot-starter-web:${springBootVersion}" реализация 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml' реализация «com.fasterxml.woodstox:woodstox-core» // Базовые классы безопасности реализация 'org.springframework.boot:spring-boot-starter-security' //реализация 'org.springframework.security:spring-security-config' // Требуется для процесса входа в OIDC реализация "org.springframework.security:spring-security-oauth2-client" // Требуется для обработки кода аутентификации реализация "org.springframework.security:spring-security-oauth2-jose" реализация 'org.projectlombok:lombok:1.18.24' // Минимальные дополнительные элементы помимо стартового для стороны сервера ресурсов. // https://docs.spring.io/spring-security/ ... ndenthoods реализация "org.springframework.security:spring-security-oauth2-resource-server" реализация "org.springframework.cloud:spring-cloud-starter-oauth2:2.2.5.RELEASE" // Ломбок группа реализации: «org.projectlombok», имя: «lombok», версия: «1.18.24» annotationProcessor 'org.projectlombok:lombok:1.18.24' // https://mvnrepository.com/artifact/org.jsoup/jsoup группа реализации: «org.jsoup», имя: «jsoup», версия: «1.13.1» реализация 'org.eclipse.jgit:org.eclipse.jgit:5.10.0.202012080955-r' // реализация 'org.springframework.cloud:spring-cloud-starter-oauth2' реализация('org.codehaus.jettison:jettison:1.3.8') // https://mvnrepository.com/artifact/com. ... re-storage // Библиотеки Azure группа реализации: «com.microsoft.azure», имя: «azure-storage», версия: «8.6.6». реализация «com.azure.resourcemanager:azure-resourcemanager-mediaservices:1.1.0-beta.2» группа реализации: «com.azure», имя: «azure-identity», версия: «1.4.0». группа реализации: «com.azure», имя: «azure-storage-blob», версия: «12.14.1». группа реализации: «com.azure», имя: «azure-core», версия: «1.21.0». группа реализации: «com.azure», имя: «azure-core-management», версия: «1.2.1». группа реализации: «commons-codec», имя: «commons-codec», версия: «1.15» группа реализации: «com.azure», имя: «azure-core-management», версия: '1.4.1' реализация «com.azure.resourcemanager:azure-resourcemanager-videoanalyzer:1.0.0-beta.1» группа реализации: «com.azure», имя: «azure-messaging-eventhubs-checkpointstore-blob», версия: «1.10.2». группа реализации: «com.azure», имя: «azure-messaging-eventhubs», версия: «5.10.3». группа реализации: «io.projectreactor.netty», имя: «reactor-netty», версия: «1.0.13» группа реализации: «io.projectreactor», имя: «reactor-core», версия: «3.4.0» Группа runtimeOnly: «io.jsonwebtoken», имя: «jjwt-jackson», версия: «0.10.5». группа реализации: «io.jsonwebtoken», имя: «jjwt-api», версия: «0.10.5» группа реализации: «com.microsoft.azure», имя: «azure-media», версия: «0.9.8». testImplementation 'junit:junit' testImplementation 'org.easymock:easimock:3.6' testImplementation 'org.powermock:powermock:1.6.4' testImplementation 'org.powermock:powermock-api-mockito:1.6.4' testImplementation 'org.powermock:powermock-module-junit4:1.6.4' testImplementation 'org.powermock:powermock-easymock-release-full:1.6.4' testImplementation 'org.mockito:mockito-core:1.10.19' testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.6.2' } } //mainClassName = 'com.mycompany.hr.pocketguide.Application' задачи.named('тест') { использоватьJUnitPlatform() } // узел { скачать = ложь версия = '16.0.0' скачать = правда //workDir = file('${project.projectDir}/nodejs') } npm_run_build { args = ['запустить', 'построить'] зависит от npmInstall inputs.files(fileTree('node_modules')) inputs.files(fileTree('src/main/js')) inputs.files(fileTree('src/main/resources/static')) inputs.file('package.json') inputs.file('webpack.config.js') outputs.dir('$buildDir/resources/main/static') } mainClassName = 'com.mycompany.hr.pocketguide.Application'
У меня есть приложение Springboot, которое нормально запускается, когда я запускаю bootRun из плагинов Gradle в моей IDE. Однако когда я запускаю bootJar, а затем запускаю java -jar myjar.jar, я получаю неудовлетворенные ошибки зависимостей. Мне кажется странным, что bootRun запускается нормально, но bootJar не создает тот же пакет, который создается при запуске bootRun. Я думаю, что все дело в этой ошибке:
Ошибка создания компонента с именем 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration'
Причина, по которой я это говорю, заключается в том, что когда я добавляю
весна: автоконфигурация: исключать: - org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration в файл application.yaml и перестройте jar, который фактически запускается без исключений UnsatisifiedDependencyExceptions. Однако конечные точки приложения возвращают 404, похоже, они не были инициализированы весной.
Кто-нибудь знает, почему это может произойти? Вот мой файл градиента. Если у кого-нибудь есть идеи, как я могу запустить файл jar, как если бы я запускал bootRun, мне бы очень хотелось услышать, как это сделать. Спасибо!
def props = новые свойства() file("gradle.properties").withInputStream { props.load(it) } def build_username = props.getProperty("build_username") def build_password = props.getProperty("build_password") сценарий сборки { доб. { SpringBootVersion = '2.3.1.ВЫПУСК' } репозитории { знаток { URL-адрес «https://maven.artifactory.mycompany.com ... le-plugins» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... s-release/» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... s-release/» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки // System.out.println("** GRADLEW_USERNAME ** ") // System.out.println(имя пользователя) // System.out.println(пароль) } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... gins-cache» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... -snapshot/» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } зависимости { путь к классам 'com-платформа: mack-перехватчик: 0.1.2' путь к классам 'com.mycompany.sa.xc.ps.models:ps-custinfo:v2.0.5' путь к классам 'com.mycompany.finance.common:hdw2f-common-library:0.1.0+134-SNAPSHOT' classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") путь к классам "org.jfrog.buildinfo:build-info-extractor-gradle:4.24.16" путь к классам 'com.adarshr:gradle-test-logger-plugin:3.0.0' путь к классам 'com.github.dreamhead:moco-runner:1.2.0' путь к классам 'com.github.node-gradle.node:com.github.node-gradle.node.gradle.plugin:7.0.1' путь к классам 'io.spring.dependent-management:io.spring.dependent-management.gradle.plugin:1.1.4' } } } применить плагин: 'jacoco' применить плагин: 'java' применить плагин: «org.springframework.boot» применить плагин: 'maven-publish' применить плагин: «com.github.node-gradle.node» применить плагин: 'io.spring.dependent-management' применить плагин: 'приложение' репозитории { знаток { URL-адрес «https://maven.artifactory.mycompany.com ... le-plugins» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... s-release/» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... s-release/» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки // System.out.println("** GRADLEW_USERNAME ** ") // System.out.println(имя пользователя) // System.out.println(пароль) } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... gins-cache» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... s-snapshot» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } знаток { URL-адрес «https://maven.artifactory.mycompany.com ... tone-cache» реквизиты для входа { имя пользователя = имя_пользователя_сборки пароль = пароль_сборки } источники метаданных { mavenPom() артефакт() } } зависимости { доб. { SpringBootVersion = '2.3.1.ВЫПУСК' } реализация 'com.moowork.gradle:gradle-node-plugin:1.2.0' реализация 'com.google.code.gson:gson:2.7' реализация 'com.googlecode.json-simple:json-simple:1.1.1' группа реализации: «commons-io», имя: «commons-io», версия: «2.7» реализация "org.springframework.boot:spring-boot-starter-web:${springBootVersion}" реализация 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml' реализация «com.fasterxml.woodstox:woodstox-core» // Базовые классы безопасности реализация 'org.springframework.boot:spring-boot-starter-security' //реализация 'org.springframework.security:spring-security-config' // Требуется для процесса входа в OIDC реализация "org.springframework.security:spring-security-oauth2-client" // Требуется для обработки кода аутентификации реализация "org.springframework.security:spring-security-oauth2-jose" реализация 'org.projectlombok:lombok:1.18.24' // Минимальные дополнительные элементы помимо стартового для стороны сервера ресурсов. // https://docs.spring.io/spring-security/ ... ndenthoods реализация "org.springframework.security:spring-security-oauth2-resource-server" реализация "org.springframework.cloud:spring-cloud-starter-oauth2:2.2.5.RELEASE" // Ломбок группа реализации: «org.projectlombok», имя: «lombok», версия: «1.18.24» annotationProcessor 'org.projectlombok:lombok:1.18.24' // https://mvnrepository.com/artifact/org.jsoup/jsoup группа реализации: «org.jsoup», имя: «jsoup», версия: «1.13.1» реализация 'org.eclipse.jgit:org.eclipse.jgit:5.10.0.202012080955-r' // реализация 'org.springframework.cloud:spring-cloud-starter-oauth2' реализация('org.codehaus.jettison:jettison:1.3.8') // https://mvnrepository.com/artifact/com. ... re-storage // Библиотеки Azure группа реализации: «com.microsoft.azure», имя: «azure-storage», версия: «8.6.6». реализация «com.azure.resourcemanager:azure-resourcemanager-mediaservices:1.1.0-beta.2» группа реализации: «com.azure», имя: «azure-identity», версия: «1.4.0». группа реализации: «com.azure», имя: «azure-storage-blob», версия: «12.14.1». группа реализации: «com.azure», имя: «azure-core», версия: «1.21.0». группа реализации: «com.azure», имя: «azure-core-management», версия: «1.2.1». группа реализации: «commons-codec», имя: «commons-codec», версия: «1.15» группа реализации: «com.azure», имя: «azure-core-management», версия: '1.4.1' реализация «com.azure.resourcemanager:azure-resourcemanager-videoanalyzer:1.0.0-beta.1» группа реализации: «com.azure», имя: «azure-messaging-eventhubs-checkpointstore-blob», версия: «1.10.2». группа реализации: «com.azure», имя: «azure-messaging-eventhubs», версия: «5.10.3». группа реализации: «io.projectreactor.netty», имя: «reactor-netty», версия: «1.0.13» группа реализации: «io.projectreactor», имя: «reactor-core», версия: «3.4.0» Группа runtimeOnly: «io.jsonwebtoken», имя: «jjwt-jackson», версия: «0.10.5». группа реализации: «io.jsonwebtoken», имя: «jjwt-api», версия: «0.10.5» группа реализации: «com.microsoft.azure», имя: «azure-media», версия: «0.9.8». testImplementation 'junit:junit' testImplementation 'org.easymock:easimock:3.6' testImplementation 'org.powermock:powermock:1.6.4' testImplementation 'org.powermock:powermock-api-mockito:1.6.4' testImplementation 'org.powermock:powermock-module-junit4:1.6.4' testImplementation 'org.powermock:powermock-easymock-release-full:1.6.4' testImplementation 'org.mockito:mockito-core:1.10.19' testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.6.2' } } //mainClassName = 'com.mycompany.hr.pocketguide.Application' задачи.named('тест') { использоватьJUnitPlatform() } // узел { скачать = ложь версия = '16.0.0' скачать = правда //workDir = file('${project.projectDir}/nodejs') } npm_run_build { args = ['запустить', 'построить'] зависит от npmInstall inputs.files(fileTree('node_modules')) inputs.files(fileTree('src/main/js')) inputs.files(fileTree('src/main/resources/static')) inputs.file('package.json') inputs.file('webpack.config.js') outputs.dir('$buildDir/resources/main/static') } mainClassName = 'com.mycompany.hr.pocketguide.Application'
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Доктест: Как определить разницу между ожидаемым и фактическим результатом?
Anonymous » » в форуме Python - 0 Ответы
- 38 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Maven генерирует фактический jar как файл .jar.original вместо файла .jar
Anonymous » » в форуме JAVA - 0 Ответы
- 64 Просмотры
-
Последнее сообщение Anonymous
-