设为首页 收藏本站
查看: 921|回复: 0

[经验分享] maven笔记

[复制链接]

尚未签到

发表于 2017-3-2 09:22:11 | 显示全部楼层 |阅读模式
maven注意事项:

怎样让文件夹更有层次感:

通过添加sourcefolder的方式添加首层目录,然后再添加package形成次层目录,这样可以更好地更清晰的展现文件

新建的maven项目,没有maven dependens lib:

目前为止确定是pom文件的问题,由于时间原因,多模块maven以后再研究!





http://fluagen.blog.iyunv.com/146595/40086/



看看你的工程里面的pom.xml是不是不在这个目录里面:D:\test\openxds_src1



要想使用mvn命令,你需要到pom.xml文件所在的目录执行 mvn 命令,或者在mvn命令中指定pom.xml文件的所在。



《maven实战》这本书。



groupid里的包地址,会自动把jar包符合这个包命名的jar包都放到红框里面的组里面,当pom这个配置文件如果出错的时候红框里的组会自



动消失。

pom.xml出错的时候试着mvn clean/eclipse:eclipse/compiel..



如果单是继承ActionSuppor类 就需要xwork-2.1.2.jar

如果要搭建struts2 就要这六个包

struts2-core.jar——Struts2的核心包

xwork-core.jar——Command模式框架,WebWork和Struts2都基于xwork

commons-logging.jar——Java日志工具类包

commons-fileupload-1.2.1.jar——文件上传

freemarker.jar——模板引擎,一个基于模板生成文本输出的通用工具

ognl.jar——Object-Graph Navigation Language,表达式语言,用来获取和设置Java对象属性

可选包

antlr.jar——语法分析器

aopalliance.jar——AOP联盟标准接口

classworlds.jar——class对象管理

commons-beanutils.jar——Bean处理工具类包 这六个



配置${springframework.version}类似方式的时候,要注意着三个图片中的配置



后面不能加上2

<dependency>

    <groupId>org.hibernate</groupId>

    <artifactId>hibernate-core</artifactId>

    <version>4.3.0.Final</version>

</dependency>





phony.xwork2.ObjectFactory with the name struts has already been loaded by bean - jar:file:/C:/U

Unable to load configuration struts2-core-2.3.16.3.jar!/struts-default.xml:40:72

出现上面这个类似的东西的时候可能是因为用了maven,而lib下的jar包仍然还留着,解决办法就是移除项目中的lib



红框中的直接影响到部署的路径



利用tomcat部署的时候一定要指定webapp部署的目录,或注释掉指定为

webroot的项目



如果java build path 中没有maven,则添加以下:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">

<attributes>

<attribute name="maven.pomderived" value="true"/>

<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>

</attributes>

</classpathentry>





有时候网速不好,或者是其它原因中断了maven本地库里的jar下载,然后会导致pom.xml文件报错,解决的办法就是:

报错错误信息大概意思是说maven想要尝试去下载maven-surefire-plugin,但是又无法下载。



解决方法:

首先确定你的电脑是否可以连接网络。

如果可以连接网络,在maven的本地库的路径下执行以下命令:

1

for /r %i in (*.lastUpdated) do del %i

最后,尝试刷新maven工程,看是否可以成功。

这是什么命令?

是在cmd中执行吗?

追答:

是的,但要在maven本地库的路径下



maven安装:

http://blog.csdn.net/smilevt/article/details/8215558/





在创建maven项目的时候,如果偷懒不删掉带红叉的源文件目录,而去”巧用“**来消除错误,会造成在该源文件目录下无法正常创建包及类文



件!



在web.xml中配置springmvc的servlet配置文件的时候,如果是配置默认的不加载另外配置文件的语句,则需要强制建立spring-servlet.xml



文件,如果是另外init-param指定配置文件的话,就不需要再另外指定spring-servlet文件。



     <!-- 配置spring核心servlet  如若照这个配置,需要强制配置spring-servlet.xml文件!-->

<!--     <servlet> -->

<!--         <servlet-name>spring</servlet-name> -->

<!--         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> -->

<!--         <load-on-startup>1</load-on-startup> -->

<!--     </servlet> -->

<!--     url-pattern配置为/,不带文件后缀,会造成其它静态文件(js,css等)不能访问。如配为*.do,则不影响静态文件的访问 -->

<!--     <servlet-mapping> -->

<!--         <servlet-name>spring</servlet-name> -->

<!--         <url-pattern>/</url-pattern> -->

<!--     </servlet-mapping> -->

<!--     <welcome-file-list> -->

<!--      <welcome-file>index.html</welcome-file> -->

<!--      </welcome-file-list> -->

   

<!-- springmvc配置部分 其实就是一个普通的servlet -->

<servlet>

<description>spring mvc servlet</description>

<servlet-name>springMvc</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<description>spring mvc config</description>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:spring/spring-mvc.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

      <servlet-name>springMvc</servlet-name>

      <url-pattern>*.html</url-pattern>

    </servlet-mapping>



在pom.xml中配置包得时候,同一个大包,也就是 <groupId>org.slf4j</groupId>部分相同的东西,引用的版本都必须是完全相同,否则会



找不到某些内置方法



在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签...            <scope>provided</scope>



maven强制更新:mvn clean install -e -U



runas >>mavenInstall  开始编译



打包:





配置 你的pom.xml文件,在你的overview视窗里 配置 packaging为 war 然后

然后点击 pom.xml右键,run  as 选择 install 或是 package

如果项目没问题,配置没问题

就会在项目的target 的目录里生成 war文件,



  <pluginExecution> <pluginExecutionFilter <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-



plugin</artifactId> <versionRange>[3.1,)</versionRange> <goals> <goal>testCompile</goal> <goal>compile</goal> </goals>



</pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution>

加入这个可以解决加入jdt后报错的问题









import junit.framework.TestListener; 没有使用,但是不知道为什么,在mvn install的时候会提示:“程序包junit.framework不存在”的错误。





http://juvenshun.iteye.com/blog/305865



如果提示这个错误,则设置:

web.xml is missing and <failOnMissingWebXml> is set to true

<failOnMissingWebXml>false</failOnMissingWebXml>



Plugin execution not covered by lifecycle configuration:

增加了eclipse jdt 编译以后会报错(可以忽略这个错误):

<compilerId>eclipse</compilerId>  



pom中添加jetty插件:



<!--             jetty -->

                 <plugin>

                <groupId>org.mortbay.jetty</groupId>

                <artifactId>maven-jetty-plugin</artifactId>

                <version>6.1.5</version>

                <configuration>

                    <scanIntervalSeconds>5</scanIntervalSeconds>

                    <stopKey>foo</stopKey>

                    <stopPort>9999</stopPort>

                    <webAppConfig>

                        <contextPath>/dooriya</contextPath>

                        <defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>

                    </webAppConfig>

                    <systemProperties>

                        <systemProperty>

                            <name>jetty.port</name>

                            <value>8083</value>

                        </systemProperty>

                    </systemProperties>

                </configuration>

            </plugin>

然后使用mvn jetty:run命令启动项目,终止直接control + C





<!--             tomcat -->

             <plugin>

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

            <artifactId>tomcat7-maven-plugin</artifactId>

            <version>2.0-SNAPSHOT</version>

            <configuration>

                <url>http://localhost:8083/manage/login</url>

                <server>tomcat</server>

            </configuration>

              </plugin>

       mvn tomcat:run  开始运行项目  mvn tomcat:stop可以终止



原来pom.xml乱导入文件,虽然pom正常,但是会造成其它xml文件解析失败



eclipse插件中,新建run fangshi wei build :

mvn -Djetty.port=9999 jetty:run

tomcat:run -Dmaven.tomcat.port=8080 这个是指定maven tomcat的端口




<plugin><groupId>org.codehaus.mojo</groupId><artifactId>tomcat-maven-plugin</artifactId><configuration><uriEncoding>UTF-8</uriEncoding><path>/monitor</path>                <!--在这里定义端口号 -->                <port>8089</port></configuration>/plugin>
<!--生成jar的时候会同时生成源码包的插件 -->            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-source-plugin</artifactId>            </plugin>
找不到maven dependends:
首先检查下是否加入了dependends依赖包配置,然后看下面
  最后我对比了一个没有出错的项目的.classpath文件,ctrl+f找maven,把对的那个项目的.classpath文件中有maven的全都粘到出错的项目中,然后refresh项目,发现出现了Maven Dependencies这个库!
  后来再上网搜索,找到了解决办法:
  找自己出错项目的.classpath文件,打开,ctrl+f,找是否有以下文件,如果没有在末尾加进去,再refresh项目即可:

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>

DSC0000.png   当遇到maven结构造成的类报错,可以在这里add,以com为界限来add
  多项目,有时候build还是要全局的
可以解决maven 错误: 找不到符号的问题
<parent>
    <groupId>com.ocean</groupId>
    <artifactId>marineProj</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
子maven项目里需要配置这个,另外
<groupId>com.ocean.frame</groupId>
  <artifactId>blog</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
groupid也是有区别的
  <dependencies>
    <dependency>
        <groupId>com.ocean</groupId>
    <artifactId>commons</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>依赖common是为了依赖里面的自编java代码,而不是说有父maven那种依赖第三方jar包
  <groupId>com.ocean</groupId>groupid是组Id,是网站全路径
  <artifactId>common</artifactId>articactid是子项目的名称

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-349086-1-1.html 上篇帖子: nginx 结合tomcat 双机热备 下篇帖子: 持续集成 之 apache-continuum
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表