您的位置:首页 > 运维架构 > Tomcat

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

2018-04-04 17:05 901 查看
接触了一段时间的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>ne
b94a
xus</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打包时给项目打包时用的吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring boot tomcat maven