• maven笔记


    maven注意事项:
    怎样让文件夹更有层次感:
    通过添加sourcefolder的方式添加首层目录,然后再添加package形成次层目录,这样可以更好地更清晰的展现文件
    新建的maven项目,没有maven dependens lib:
    目前为止确定是pom文件的问题,由于时间原因,多模块maven以后再研究!
     
     
     
    看看你的工程里面的pom.xml是不是不在这个目录里面:D: estopenxds_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安装:
     
     
    在创建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不存在”的错误。
     
     
    如果提示这个错误,则设置:
    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>

    当遇到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是子项目的名称




  • 相关阅读:
    正则表达式() [] {}区别
    JAVA int自动装箱
    Intellij Idea debug 远程部署的的tomcat项目
    TensorFlow MNIST CNN 代码
    线性代数-01-向量究竟是什么
    线性代数-线性代数的本质
    TensorFlow MNIST 入门 代码
    TensorFlow 学习可视化 TensorBoard 简易教程
    TensorFlow 函数
    TensorFlow Demo2
  • 原文地址:https://www.cnblogs.com/marineblog/p/5559212.html
Copyright © 2020-2023  润新知