gpt4 book ai didi

java - 在 Jenkins 上部署 Spring Boot 应用程序

转载 作者:行者123 更新时间:2023-12-04 08:07:41 28 4
gpt4 key购买 nike

我正在 Jenkins 端口 8081 上部署 Spring Boot 应用程序。我在端口 5050 上运行了 tomcat。当我部署应用程序时,它会显示一条成功消息,但是当我导航到 localhost:5050/{given context name} 时,它会向我显示 404 Not found信息。我也尝试过使用嵌入式方式它不起作用如果有任何方法可以更好地使用嵌入式 tomcat 进行部署
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>auth-course</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>auth-course</name>
<description>Demo project for Spring Boot</description>

<properties>
<java.version>1.8</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.12.1</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Jenkins 日志
 > git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10
Checking out Revision 23c1d2fafe6f0c1d19c479b1ae2e5b9b6492a36a (refs/remotes/origin/master)
> git.exe config core.sparsecheckout # timeout=10
> git.exe checkout -f 23c1d2fafe6f0c1d19c479b1ae2e5b9b6492a36a # timeout=10
Commit message: "added new dep"
> git.exe rev-list --no-walk 70373963607fb3dd6f1919eb0e6313cfd135e6dd # timeout=10
[jenkins-deployment-1] $ cmd.exe /C "mvn clean compile package && exit %%ERRORLEVEL%%"
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< com.example:auth-course >-----------------------
[INFO] Building auth-course 0.0.1-SNAPSHOT
[INFO] --------------------------------[ war ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ auth-course ---
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ auth-course ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ auth-course ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 24 source files to C:\Users\Developer\.jenkins\workspace\jenkins-deployment-1\target\classes
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ auth-course ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ auth-course ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 24 source files to C:\Users\Developer\.jenkins\workspace\jenkins-deployment-1\target\classes
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ auth-course ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\Developer\.jenkins\workspace\jenkins-deployment-1\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ auth-course ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to C:\Users\Developer\.jenkins\workspace\jenkins-deployment-1\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ auth-course ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.example.demo.SareetaApplicationTests
21:58:30.863 [main] DEBUG org.springframework.test.context.junit4.SpringJUnit4ClassRunner - SpringJUnit4ClassRunner constructor called with [class com.example.demo.SareetaApplicationTests]
21:58:30.928 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]
21:58:30.991 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)]
21:58:31.109 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [com.example.demo.SareetaApplicationTests] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper]
21:58:31.398 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.example.demo.SareetaApplicationTests], using SpringBootContextLoader
21:58:31.456 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [com.example.demo.SareetaApplicationTests]: class path resource [com/example/demo/SareetaApplicationTests-context.xml] does not exist
21:58:31.464 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [com.example.demo.SareetaApplicationTests]: class path resource [com/example/demo/SareetaApplicationTestsContext.groovy] does not exist
21:58:31.466 [main] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [com.example.demo.SareetaApplicationTests]: no resource found for suffixes {-context.xml, Context.groovy}.
21:58:31.469 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [com.example.demo.SareetaApplicationTests]: SareetaApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
21:58:31.933 [main] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [com.example.demo.SareetaApplicationTests]
21:58:32.922 [main] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [C:\Users\Developer\.jenkins\workspace\jenkins-deployment-1\target\classes\com\example\demo\SareetaApplication.class]
21:58:32.937 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration com.example.demo.SareetaApplication for test class com.example.demo.SareetaApplicationTests
21:58:33.933 [main] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [com.example.demo.SareetaApplicationTests]: using defaults.
21:58:33.948 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener]
21:58:34.144 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@38425407, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@43bc63a3, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@702657cc, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@6a6cb05c, org.springframework.test.context.support.DirtiesContextTestExecutionListener@40a4337a, org.springframework.test.context.transaction.TransactionalTestExecutionListener@6025e1b6, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@22ff4249, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@2d1ef81a, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@4c402120, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@327514f, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@5b12b668, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@1165b38]
21:58:34.161 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.example.demo.SareetaApplicationTests]
21:58:34.166 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.example.demo.SareetaApplicationTests]
21:58:34.181 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.example.demo.SareetaApplicationTests]
21:58:34.188 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.example.demo.SareetaApplicationTests]
21:58:34.197 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.example.demo.SareetaApplicationTests]
21:58:34.200 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.example.demo.SareetaApplicationTests]
21:58:34.247 [main] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@179ece50 testClass = SareetaApplicationTests, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@3b0090a4 testClass = SareetaApplicationTests, locations = '{}', classes = '{class com.example.demo.SareetaApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@42607a4f, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@64485a47, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@4c762604, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@52525845], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true]], class annotated with @DirtiesContext [false] with mode [null].
21:58:34.264 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.example.demo.SareetaApplicationTests]
21:58:34.265 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.example.demo.SareetaApplicationTests]
21:58:34.816 [main] DEBUG org.springframework.test.context.support.TestPropertySourceUtils - Adding inlined properties to environment: {spring.jmx.enabled=false, org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true, server.port=-1}

. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.5.RELEASE)

2021-02-10 21:58:39.164 INFO 5452 --- [ main] c.example.demo.SareetaApplicationTests : Starting SareetaApplicationTests on DESKTOP-PM4AIA1 with PID 5452 (started by Developer in C:\Users\Developer\.jenkins\workspace\jenkins-deployment-1)
2021-02-10 21:58:39.175 INFO 5452 --- [ main] c.example.demo.SareetaApplicationTests : No active profile set, falling back to default profiles: default
2021-02-10 21:58:47.344 INFO 5452 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2021-02-10 21:58:48.015 INFO 5452 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 622ms. Found 4 repository interfaces.
2021-02-10 21:58:54.388 INFO 5452 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$db2b2bf7] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2021-02-10 21:58:56.598 INFO 5452 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2021-02-10 21:58:58.389 INFO 5452 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2021-02-10 21:58:59.098 INFO 5452 --- [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2021-02-10 21:58:59.636 INFO 5452 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {5.3.10.Final}
2021-02-10 21:58:59.645 INFO 5452 --- [ main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2021-02-10 21:59:01.012 INFO 5452 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2021-02-10 21:59:04.109 INFO 5452 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2021-02-10 21:59:09.888 INFO 5452 --- [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2021-02-10 21:59:23.250 INFO 5452 --- [ main] o.s.s.web.DefaultSecurityFilterChain : Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@32b46831, org.springframework.security.web.context.SecurityContextPersistenceFilter@13cc31ae, org.springframework.security.web.header.HeaderWriterFilter@34ab26a, org.springframework.security.web.authentication.logout.LogoutFilter@671d97bc, com.example.demo.security.jwt.JwtAuthenticationFilter@5353dd09, com.example.demo.security.jwt.JwtAuthorizationFilter@320ff86f, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@4bfa5eb9, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@ee2ae9a, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@192b472d, org.springframework.security.web.session.SessionManagementFilter@12209826, org.springframework.security.web.access.ExceptionTranslationFilter@176333ee, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@6eabe718]
2021-02-10 21:59:40.560 INFO 5452 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2021-02-10 21:59:41.490 WARN 5452 --- [ main] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2021-02-10 21:59:51.868 INFO 5452 --- [ main] c.example.demo.SareetaApplicationTests : Started SareetaApplicationTests in 76.819 seconds (JVM running for 83.918)
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 84.83 s - in com.example.demo.SareetaApplicationTests
2021-02-10 21:59:54.810 INFO 5452 --- [ Thread-3] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
2021-02-10 21:59:54.828 INFO 5452 --- [ Thread-3] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2021-02-10 21:59:54.839 INFO 5452 --- [ Thread-3] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2021-02-10 21:59:54.950 INFO 5452 --- [ Thread-3] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO]
[INFO] --- maven-war-plugin:3.2.2:war (default-war) @ auth-course ---
[INFO] Packaging webapp
[INFO] Assembling webapp [auth-course] in [C:\Users\Developer\.jenkins\workspace\jenkins-deployment-1\target\auth-course-0.0.1-SNAPSHOT]
[INFO] Processing war project
[INFO] Webapp assembled in [3006 msecs]
[INFO] Building war: C:\Users\Developer\.jenkins\workspace\jenkins-deployment-1\target\auth-course-0.0.1-SNAPSHOT.war
[INFO]
[INFO] --- spring-boot-maven-plugin:2.1.5.RELEASE:repackage (repackage) @ auth-course ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:02 min
[INFO] Finished at: 2021-02-10T22:00:41+05:00
[INFO] ------------------------------------------------------------------------
[DeployPublisher][INFO] Attempting to deploy 1 war file(s)
[DeployPublisher][INFO] Deploying C:\Users\Developer\.jenkins\workspace\jenkins-deployment-1\target\auth-course-0.0.1-SNAPSHOT.war to container Tomcat 8.x Remote with context jenkins-project-1
Redeploying [C:\Users\Developer\.jenkins\workspace\jenkins-deployment-1\target\auth-course-0.0.1-SNAPSHOT.war]
Undeploying [C:\Users\Developer\.jenkins\workspace\jenkins-deployment-1\target\auth-course-0.0.1-SNAPSHOT.war]
Deploying [C:\Users\Developer\.jenkins\workspace\jenkins-deployment-1\target\auth-course-0.0.1-SNAPSHOT.war]
Finished: SUCCESS

最佳答案

Jenkins 是一个 CI/CD 软件,用于构建您的应用程序(而不是将其部署在 Jenkins 服务器上)。你在哪里运行它是一个不同的主题。
Jenkins 在构建您的 Java 可执行文件 (.war) 时所做的一切都是正确的。您现在应该做的是在服务器上运行这个构建的可执行文件。
考虑使用 Docker 在 Jenkins 中构建您的应用程序,并在不同的服务器上启动生成的 Docker 容器。

关于java - 在 Jenkins 上部署 Spring Boot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66141666/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com