前天因为要帮同事把其他项目的环境部署,本想着常规操作可以解决,一顿操作以后,发现项目报错更多了....
以前发布过关于项目部署的文章,觉得这不是必备技能么,主流IDE也就是IDEA,Eclipse系列等,参考IntelliJ IDEA 和 Eclipse等工具部署项目到Tomcat。
这次这个项目的坑就很烦,正常部署之后,发现页面全是报错,项目是一个SpringBoot项目,正常指定maven仓库,或从从库拉取,或从阿里云下载,执行install之后,下载jar包的地址指向了本地服务器地址,但是应该拉不下来再去阿里云下载啊,怎么还是下不下来?
最终找到pom文件,罪魁祸首代码:
<!-- 配置私有库地址 -->
<!--<repositories>
<repository>
<id>nexus</id>
<name>nexus</name>
<url>http://马赛克/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>nexus</name>
<url>http://马赛克/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<!–
发布到私有库
命令:clean deploy
–>
<distributionManagement>
<snapshotRepository>
<id>user-snapshot</id>
<name>User Porject Snapshot</name>
<url>http://马赛克/nexus/content/repositories/snapshots/</url>
<uniqueVersion>true</uniqueVersion>
</snapshotRepository>
<repository>
<id>user-release</id>
<name>User Porject Release</name>
<url>http://马赛克/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>-->
像这种jar包网上不都开源的吗?而且在父项目管理,导致整个项目不能下载,那么查一下
-<repositories>,<pluginRepositories>, <snapshotRepository>
这几个注解到底有什么作用?
<repositories>
在maven中pom.xml是Maven进行工作的主要配置文件,它的作用包括:配置Maven项目中需要使用的远程仓库,Maven项目的资源依赖关系等。其中pom是Project Object Model(项目对象模型)的简称。
在pom.xml中repositories标签的作用是用来配置maven项目的远程仓库
当pom文件指定了远程仓库,但是每次配置项目都要配置一次,干嘛不直接在setting文件中指定地址呢?不知道意义何在?
<pluginRepositories>
用来配置maven插件的远程仓库
<snapshotRepository>
而<snapshots><enabled>false</enabled></snapshots>告诉Maven不要从这个仓库下载snapshot版本的构件。禁止从公共仓库下载snapshot构件是推荐的做法,因为这些构件不稳定,且不受你控制,你应该避免使用。当然,如果你想使用局域网内组织内部的仓库,你可以激活snapshot的支持
可以说这几个配置很少见,没什么用
这样我就把这几个注解注释,然后直接maven下载就可以了
再说下最近涨知识:
问题:
注释方法一般就是这三种
<!--<script type="text/javascript">-->
/*var s = new Object();*/
<%--var s = new Object();--%>
快捷键一般不生成第三种,所以F12会看到注释代码,那么确实如果项目是涉密,或者上市内测的项目,会被竞对发现,那么如何解决?
1:所有的注释形式为<%--var s = new Object();--%>
但开发效率低,并且一开始不会注意
2:webpack打包
在项目部署打成war包之前,用webpack将前端页面抽取出来单独打包,这样整个前端页面即可解决这个问题。
webpack是个什么鬼?
官网:https://www.webpackjs.com/guides/production/
查看原文|编辑此页
本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
有类似需求的,可以参考官网或查询资料解决,我就不演示了,我的Vmware又让我玩坏了,登不上了,改天还得抽时间重装。