解决Maven开发发布出错

1.JDK版本的设置

设置全局的jdk,在setting.xml文件中的profiles元素下添加如下profile元素

<profile>  

    <id>jdk17</id>  

    <activation>  

        <activeByDefault>true</activeByDefault>  

        <jdk>1.7</jdk>  

    </activation>  

    <properties>  

        <maven.compiler.source>1.7</maven.compiler.source>  

        <maven.compiler.target>1.7</maven.compiler.target>  

        <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>  

    </properties>   

</profile>  

设置局部的jdk,在项目的pom,xml文件中添加如下build元素

<build>  

    <plugins>  

       <plugin>  

            <groupId>org.apache.maven.plugins</groupId>  

            <artifactId>maven-compiler-plugin</artifactId>  

            <configuration>  

                <source>1.7</source>  

                <target>1.7</target>  

            </configuration>  

        </plugin>  

    </plugins>  

</build>  

2.MAVEN的依赖方式主要有两种WAR包和JAR包;

JAR包-查看源码方式:右键工程-->maven-download source ,就可以下载源码;点开jar包就可以查看源码;
WAR包-查看源码方式:右键工程-->maven-->install;工程target目录下会出现目录war\work ,该目录就是依赖的WAR解压后的内容;


3.使用MAVEN开发WEB工程的相关注意点

第一种情况如果WEB工程只依赖JAR包,注意事项相对少些;

如果工程JAR依赖发生了变化,只需要右键工程->MAVEN->UPDATE PROJECT,(该步骤的含义更新JAR依赖,同时根据POM.xml的JDK版本更新工程的编译版本,clean project重新编译工程)

09210128_2vcx.jpg


第二种情况:

如果WEB工程依赖了WAR包,如果依赖变更,除了UPDATE PROJECT之外,还要执行maven Install ;


如果WEB工程依赖于其他WAR包, 处理步骤如下:

STEP1. maven Install (该命令会下载WAR包,解压到目录target -->war -->work )

09210133_4xaM.jpg


STEP2.然后和本工程的webapp内容进行合并,


注意:合并的原则是不覆盖本工程的文件(即如果本工程有a.jsp,依赖的war包相同目录也有同名文件,则合并后的目录中是本工程的a.jsp);


应用场景:该覆盖规则可以用来自定义本工程的个性化样式,比如觉得框架某个样式不满意,可以自己在本工程的相同目录添加同名的样式文件,这样就实现了自定义样式。



4.使用MAVEN进行Install操作时,提示编译错误;原因是maven自带的编译规则与eclipse的冲突,可以使用eclipse自带的编译功能(eclipse工具菜单栏 project-->clean强制编译),再执行Install。



5.使用eclipse tomcat插件有时出现JAR包或者类找不到的情况,右键工程检查deployment assembly(发布打包)配置

每一项都有具体的含义:一个最终的发布包一般会有WEB-INF,lib,classes等目录,以下的各项就是相关目录与源码的关系!

只需要将最终运行的发布目录打开,和“deployment assembly”进行比对就能知道问题所在。


09210134_zFzw.jpg


6.Maven常用命令

maven clean 删除target目录

maven install 打包到本地

maven deploy 部署到私服

 

如果Web项目的WEB-INF(E:\Java\work\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps\hollybeacon-web\WEB-INF)目录下没有web.xml文件,那么就需要在tomcat中clean。

如果Web项目的WEB-INF/classes(E:\Java\work\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\wtpwebapps\hollybeacon-web\WEB-INF\classes)目录下没有文件,那么就需要清理Project。最好是开启Eclipse的自动构建。

最后就是点击Alt+Enter进行查看,查看发布的目录。

210116_Dlvu_2472104.jpg

 

1、项目清理: 选择菜单栏的Project——>Clean..——>勾选需要清理的项目(也可以选择all)  

切记:clean了项目,需要重新编译


2、项目如果是maven项目,则有时候clean project并不起效。这时候需要用maven来清理缓存:右键项目——>Run As ——> Maven clean

切记:此方法清除后,需要重新进行maven编译,可以使用Maven——>Update  Project   或者 自定义的 Maven build


3、如果是以上两个都不起效,那就直接进入项目的classes 目录下,查看编译后的class,进行反编译,与现在的项目进行对比,看看是否更新了,如果没有,删除重新编译


4、如果是web项目,并用Tomcat启动的,发现缓存问题,项目没更新,解决办法:删除项目,并进入Tomcat 的webapps  和 work 目录,删除你的项目,然后重新导入项目,重新编译 


5、浏览器缓存:浏览器缓存包括浏览器自带的缓存 和  程序缓存

(a)自带缓存:很多浏览器,比如google有时候会问你保不保存数据,如果你点的是,在很多时候容易出现数据没更新的问题

          解决办法:对于浏览器记住密码或是保存数据什么的 要慎重.. 如果出现问题:如google,选择历史记录——>清除浏览数据——>全部

6、Maven下载源码

1:Maven命令下载源码和javadocs

当在IDE中使用Maven时如果想要看引用的jar包中类的源码和javadoc需要通过maven命令下载这些源码,然后再进行引入,通过mvn命令能够容易的达到这个目的:

mvn dependency:sources
mvn dependency:resolve -Dclassifier=javadoc

命令使用方法:首先进入到相应的pom.xml目录中,然后执行以上命令:

第一个命令是尝试下载在pom.xml中依赖的文件的源代码。

第二个命令:是尝试下载对应的javadocs

但是有可能一些文件没有源代码或者javadocs

091713_Z9cI_2472104.jpg

执行Maven-Download Source

2:通过配置文件添加

打开maven配置文件 setting.xml文件(.../.m2/settings.xml) 增加如下配置:

  1. <profiles>  

  2. <profile>  

  3.     <id>downloadSources</id>  

  4.     <properties>  

  5.         <downloadSources>true</downloadSources>  

  6.         <downloadJavadocs>true</downloadJavadocs>             

  7.     </properties>  

  8. </profile>  

  9. </profiles>  

  10.   

  11. <activeProfiles>  

  12.   <activeProfile>downloadSources</activeProfile>  

  13. </activeProfiles>  

3:配置eclipse

Window > Preferences > Maven and checking the "Download Artifact Sources" and "Download Artifact JavaDoc" options


 注意:

MyEclipse下部署Maven工程到Tomcat

1)在工程名或者pom.xml上右键,Run As->Maven Clean,该maven指令用于删除target目录下的内容,如下图所示:

 095137_pg2R_2472104.png

2)在工程名或者pom.xml上右键,Run As->Maven install,该maven指令会将工程打包到本地maven仓库。刷新工程,你会看到target目录下生成了一个hollybeacon-start文件夹,如下图所示:

 095211_smCB_2472104.png

注:如果是第一次执行上面两个Maven指令,可能会下载一些文件,下载过程中,请耐心等待。

3)更改工程的发布目录

在工程名上右键->Properties,在弹出的对话框中选择MyEclipse->Deployment Assembly,如图所示:

 095226_m7uT_2472104.png

4)选中hollybeacon-start,点击Remove,移除hollybeacon-start;点击Add,选择target下面的hollybeacon-start,点击finish,添加/target/hollybeacon。如图所示:

 095300_UL80_2472104.png

5)WEB_INF下面没有lib包

配置092016_swbO_2472104.jpg

转载于:https://my.oschina.net/u/2472104/blog/528236

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值