如何在idea里自动部署maven生成的ear文件到glassfish
一个基本的glassfish的配置如下:
<plugin>
<groupId>orgglassfishmavenplugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>22-SNAPSHOT</version>
<configuration>
<glassfishDirectory>${glassfishhome}</glassfishDirectory>
<user>${domainusername}</user>
<!-- <adminPassword>admin</adminPassword> -->
<passwordFile>${glassfishhome}/domains/domain1/master-password</passwordFile>
<debug>true</debug>
<echo>true</echo>
<domain>
<name>domain1</name>
<adminPort>4848</adminPort>
</domain>
<components>
<component>
<name>${projectartifactId}</name>
<artifact>${projectbuilddirectory}/${projectbuildfinalName}war</artifact>
</component>
</components>
</configuration>
</plugin>
使用glassfish必须要求自定义<glassfishDirectory>,<user><passwordFile>或者<adminPassword>,<domain><components><debug><echo>这几个标签,对于这几个标签解释如下:
<configuration>:定义
<glassfishDirectory>:glassfish_home的目录,可以通过在settingsxml profiles中设置或者在这里指定
<user>:用户名,glassfish安装后会自动新建了一个域,domain1,用户名默认是admin,也可以通过settingsxml profiles中设置或者在这里指定
<adminPassword>:用户名密码,这个跟<passwordFile>是互相冲突的,两者只能选1,使用这个标签则要明文输入管理员登录密码,而且在glassfish启动的时候会自动生成一个tmp的文件进行读取
<passwordFile>:密码文件,指定新建域的密码文件存放位置,以domain1来说密码位置上存在domain1的根目录下的master-password
<debug>:是否使用debug模式启动glassfish,使用debug模式启动可以查看中间使用的[Info]信息,可以跟echo一起使用
<echo>:是否以echo模式启动glassfish,使用echo模式启动则直接运行,除了最后出错信息跟一些必要的[Info]信息之外其余都不显示包括中间运行错误的信息
<domain>:域
<name>:域名,指定当前项目使用那个域启动,这个域是跟<user>,<passwordFile>的内容对应的
<adminPort>:控制台端口,一般是4848
<components>:组件,生成目录:
<component>组件
<name>:组件名称,一般默认使用project的artifactId,也就是project的文件名
<artifact>:生成指定文件的目录与文件类型,对于webapp的话则是webapp
本文主要记录Jenkins+Rancher+k8s自动化部署相关配置说明,不涉及rancher和jenkins安装部署,包含java server项目、WAR项目、前端VUE项目部署配置介绍。
服务器环境信息:
需要在安装jenkins服务上部署下面相应的软件,请注意软件版本,如已经安装相关软件,可跳过此章节。
需要安装rancher-cli,并且使用jenkins用户预先登录rancher平台:命令参考:
--token:这个用户的token建议设置为永不过期,在rancher管理端 -> api&key > 添加。
建议安装阿里镜像,提高编译速度:
jenkins启动用户需要添加到docker组中:
项目主要是java和vue开发的,所以需要安装Maven Integration plugin插件。
spring boot或者spring cloud自带容器,以及其它服务类型的java后端应用部署。
1、填写项目名称,选择"构建一个maven项目"
点击下面"OK"按钮
2、填写项目描述信息
3、输入项目地址,并选择用户凭证
本文通过condingnet作为代码管理平台,点击"Add"添加自己账号凭证(输入codingnet平台登陆账号密码即可)。
4、配置maven编译脚本
5、编写rancher部署脚本
Dockerfile参数说明:FROM:选择基础镜像包,该项目是用java语言开发需要jdk18所以选择openjdk:8ADD:将bRule-deploy-100targz文件解压并上传到镜像的brule目录EXPOSE:容器内部启动2002端口,根据自身项目填写指定端口,多个端口填写多行EXPOSE标签ENTRYPOINT:容器启动时执行的命令,执行多条命令使用&&拼接,命令行中带&需要加上转移符\&,使用tail -fn监听应用日志,以便容器日志查看。
用于创建docker镜像,就好比创建一个已经安装并且配置好了应用程序的操作系统镜像。
参数说明:19216810021:5000:为本地docker镜像服务器地址brule:latest:应用名称,根据自身项目名称修改
利用上面创建好的操作系统镜像启动一个vmware虚拟机,创建k8s容器。
参数说明:brule:应用名称,根据自身项目名称修改,应用名称规范()image:刚才创建的docker镜像containerPort:容器启动端口,多个端口使用多行containerPort标签声明,端口限制在30000-32000
前面vmware虚拟机创建好后,怎么能让别人访问?这个时候就需要创建一个网络服务,用于打通路由器与vmware本地虚拟机的网络。
参数说明:brule:应用名称,根据自身项目名称修改port:容器启动端口nodePort:对外提供服务端口,外部机器访问
将上面配置好的shell脚本复制到Post Steps -> 执行shell文本域中,并点击"保存" -> "立即构建"即可部署。
1、进入刚才创建好的jenkins任务,点击立即构建
2、点击左下角构建任务,选择"Console Output",查看构建日志
3、登录rancher管理平台,查看构建好的应用
基于J2EE项目的war包部署,前面操作都一致,只是shell部署脚本稍有不同,这里主要详细说明rancher部署脚本。
Dockerfile参数说明:FROM:选择基础镜像包,war统一使用tomcat容器部署,tomcat:85-jre8-slimADD:将operationwar文件解压并上传到镜像的/usr/local/tomcat/webapps/目录EXPOSE:容器内部启动8080端口,根据自身项目填写指定端口,多个端口填写多行EXPOSE标签
这里不需要配置ENTRYPOINT标签,因为tomcat镜像包中已经有了。
用于创建docker镜像,就好比创建一个已经安装并且配置好了应用程序的操作系统镜像。
参数说明:19216810021:5000:为本地docker镜像服务器地址operation:latest:应用名称,根据自身项目名称修改
利用上面创建好的操作系统镜像启动一个vmware虚拟机,创建k8s容器。
参数说明:operation:应用名称,根据自身项目名称修改image:刚才创建的docker镜像containerPort:容器启动端口,多个端口使用多行containerPort标签声明,端口限制在30000-32000
前面vmware虚拟机创建好后,怎么能让别人访问?这个时候就需要创建一个网络服务,用于打通路由器与vmware本地虚拟机的网络。
参数说明:operation:应用名称,根据自身项目名称修改port:容器启动端口nodePort:对外提供服务端口,外部机器访问
将上面配置好的shell脚本复制到Post Steps -> 执行shell文本域中,并点击"保存" -> "立即构建"即可部署。
基于webpack构建的VUE项目部署,前面操作都一致,只是shell部署脚本稍有不同,这里主要详细说明rancher部署脚本。
Dockerfile参数说明:FROM:选择基础镜像包,前端统一使用tomcat容器部署,tomcat:85-jre8-slimCOPY:将/dist目录上传到镜像的/usr/local/tomcat/webapps/fastquery/目录EXPOSE:容器内部启动8080端口,根据自身项目填写指定端口,多个端口填写多行EXPOSE标签
这里不需要配置ENTRYPOINT标签,因为tomcat镜像包中已经有了。
用于创建docker镜像,就好比创建一个已经安装并且配置好了应用程序的操作系统镜像。
参数说明:19216810021:5000:为本地docker镜像服务器地址operation:latest:应用名称,根据自身项目名称修改
利用上面创建好的操作系统镜像启动一个vmware虚拟机,创建k8s容器。
前面vmware虚拟机创建好后,怎么能让别人访问?这个时候就需要创建一个网络服务,用于打通路由器与vmware本地虚拟机的网络。
参数说明:shutcm-fastquery-web:应用名称,根据自身项目名称修改port:容器启动端口nodePort:对外提供服务端口,外部机器访问
将上面配置好的shell脚本复制到Post Steps -> 执行shell文本域中,并点击"保存" -> "立即构建"即可部署。
额首先哈 eclipse最新的版本是44吧
你这里的问题:应该是项目的配置,提示有个bean无法创建,你这里用的是jetty吧
你可以先不去部署项目,单独起一下jetty, 访问localhost:8080/ ,如果是maven集成的jetty话,默认应该会看到Hello World 的欢迎页面。
先试试
新建项目,选择Maven Module,输入项目名称,点击Next继续,如下图所示:
注意这里的Module就是项目的意思,等同于MyEclipse中的Project。
2
接着直接点击Finish即可,如下图所示:
3
如下图所示就是创建完毕后的Maven项目,双击pomxml查看POM文件内容,可以自行添加Maven的依赖。但是发现,没有Web目录,怎么办?
4
在项目名称上右击,选择Add Framework Support,如下图所示:
5
在Add Framework Support对话框中勾选Web Application,版本选择30并勾选Create webxml,如下图所示:
点击OK后,看到如下界面,项目中出现了web文件件,是不是很熟悉了,和MyEclipse中的项目结构类似,如下图所示:
打开pomxml文件,添加必须的Maven依赖。也叫Maven坐标,由groupId、artifactId和version唯一确定一组jar依赖文件,如下图所示:
然后在indexjsp文件中随便加点内容,如下图所示:
下面配置Tomcat服务器,本例使用Tomcat6,如下图所示:
如下图所示,选择Local,然后点击Configure,在弹出的对话框中选择Tomcat安装目录
选择Tomcat Server,然后点击绿色的“+”号,如下图所示:
点击“+”后选择Local,刚刚已经配置好了Local的Tomcat服务器,如下图所示:
这里会新建一个Tomcat服务,输入任意名字即可,如下图所示:
点击Deployment,然后点击右边的“+”,添加Artifact部署,如下图所示:
点击OK回到主界面,如下图所示,点击Application Servers打开服务器视图,点击Tomcat6[local],就能看到项目的部署情况了。点击界面上方的启动按钮就可以启动Tomcat服务器,启动后服务器自动打开浏览器。
maven 手动把本地jar安装到本地仓库
方法/步骤
1
是自己编写的一个jar文件,每次添加单个jar到maven本地仓库的操作如下: 1建立一个新的文件夹,将jar文件存放在该文件夹下。 注意文件夹下最好只存放该文件。 2在该文件夹下建立一个pomxml文件,在pom文件中定义其maven坐标。 3在cmd窗口中执行以下命令: mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
例如:
mvn install:install-file -Dfile=D:/jar/xxxjar -DgroupId=xxxxxx -DartifactId=xxx -Dversion=xx -Dpackaging=jar
当Maven项目中的不刷新时,可能是由于以下几个原因导致的:
1 缓存问题:浏览器或代理服务器可能会缓存文件,导致即使文件已经更改,但浏览器仍然加载旧的缓存文件。可以尝试使用浏览器的强制刷新功能(通常是按下Ctrl + F5)或清除浏览器缓存,以确保加载最新的文件。
2 项目结构或路径问题:检查项目中文件的路径是否正确。确保文件位于正确的目录下,并且路径在代码中正确引用。另外,确保文件的命名没有错误,大小写是否匹配。
3 Maven构建问题:如果使用Maven进行构建,可能是因为Maven没有正确地将文件复制到目标目录(如target目录)中。可以检查Maven的构建配置文件(如pomxml)中是否包含正确的资源过滤和复制配置,以确保文件被正确地包含在构建结果中。
4 服务器配置问题:如果项目部署在服务器上,可能是服务器配置了缓存或代理,导致文件不刷新。可以尝试重启服务器或调整服务器配置,以确保文件能够及时更新。
如果尝试了以上方法仍然无效,建议进一步检查项目的日志文件或错误信息,以了解是否有其他相关的错误或警告提示。此外,如果使用了特定的前端框架或工具,可能还需要检查其相关配置和缓存机制。
如果问题仍然存在,建议咨询相关的开发人员或技术支持团队,以获取更具体的帮助和指导。
0条评论