spring boot项目发布tomcat容器和maven的私有仓库引用

接触了一段时间的docker和spring boot后就抛弃了tomcat,前段时间做了个控制服务器功能,但是docker的特性不允许项目直接使用系统的指令,又被迫用起了tomcat。

spring boot 和docker是一对了,但是spring boot和tomcat就有点扯淡了:

步骤:

1. 既然需要打包成war包项目,首先需要在pom.xml文件中修改打包类型,将spring boot默认的<packaging>jar</packaging>修改为<packaging>war</packaging>形式;

2.修改pom.xml文件

<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-war-plugin</artifactId>
         <version>2.1.1</version>
         <configuration>

            <!-- 打成war包时名子 -->
            <warName>demo1111</warName>
            <failOnMissingWebXml>false</failOnMissingWebXml>

         </configuration>

   </plugin>
   </plugins>
</build>

3.修改spring boot  启动类

@SpringBootApplication
public class Demo333Application   extends SpringBootServletInitializer {

   public static void main(String[] args) {
      SpringApplication.run(Demo333Application.class, args);
   }
}
基本都木有什么问题了。


---------------------------------------------------------------------------------------------------------------

Error:(8, 8) java: 无法访问org.springframework.web.WebApplicationInitializer

  找不到org.springframework.web.WebApplicationInitializer的类文件

缺少web

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>
---------------------------------------------------------------------------------------------------------------


但是,为什么会用spring boot呢,我看上的不单单它的部署简单,最看重的是它有个main方法!!!

但是spring boot 放到tomcat就有个坑,就是main方法貌似没调用。。。

@SpringBootApplication
public class Demo333Application   extends SpringBootServletInitializer {
   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
      return application.sources(Demo333Application.class);
   }
   
   public static void main(String[] args) {
      SpringApplication.run(Demo333Application.class, args);
   }
}

网上的写法是这样子的,但你要调的方法不能放在main里面,因为木有被调用,那只能放到configure里面~~

@SpringBootApplication
public class Demo333Application   extends SpringBootServletInitializer {
   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
      //startNetty();
      return application.sources(Demo333Application.class);
   }

   public static void main(String[] args) {
      SpringApplication.run(Demo333Application.class, args);
   }
}

-------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------

自己写了几个jar包,导入项目中,在本机调试没问题,但是项目mvn打包就出问题了。就算打包没事,但在运行tomcat的时候就找不到jar包。。。

又搭起maven私有仓库来了。。。点击打开链接自己参考一下,不想自己搭的会,貌似还可以直接连本地仓库,但我以前貌似试过不行。

把那些包放进仓库后在pom.xml中引用。

在project标签中加

<repositories>
   <repository>
      <id>nexus</id>
      <name>nexus Repository</name>
      <url>http://<私有仓库ip>/nexus/content/groups/public/</url>
   </repository>
</repositories>

在dependencies中添加自己的jar包

<dependency>
   <groupId>backjar</groupId>
   <artifactId>backjar</artifactId>
   <version>1.0</version>
</dependency>
问题又来了,如果是你在项目中没有导入本地的jar 包时,你会发现pom文件看上去貌似正常导入了,但是该有的引用却没有,所有本地项目导入jar还是要有的,就当pom只是给mvn打包时给项目打包时用的吧。

猜你喜欢

转载自blog.csdn.net/qq_34884729/article/details/79819350
今日推荐