• Maven与Eclipse使用中遇到的问题解决之道


    在使用Maven以及Eclipse的Maven插件时,我和同事遇到了一下几个问题,本着知其然知其所以然的学习精神,总结如下:

    1. Unrecognised tag
      问题
      由于我使用本地代理仓库,所以settings.xml设置如下:
      <profiles>
        <profile>
          <id>nexus</id>
          <repositories>
            <repository>
              <id>nexus</id>
              <name>Nexus</name>
              <url>http://localhost:8081/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://localhost:8081/nexus/content/groups/public</url>
              <releases><enabled>true</enabled></releases>
              <snapshots><enabled>true</enabled></snapshots>       
            </pluginRepository>       
          </pluginRepositories>
        </profile> 
        <!--激活配置-->
        <activeProfiles>
          <activeProfile>nexus</activeProfile>
        </activeProfiles>
      </profiles>
      但在Maven编译时报了如下异常:

      [WARNING] Some problems were encountered while building the effective settings
      [WARNING] Unrecognised tag: 'activeProfiles' (position: START_TAG seen ... ... @269:18) @ C:Documents and SettingsAdministrator.ZQFGROUP.000.m2settings.xml, line 269, column 18
      [WARNING]

      解决
      这是因为错把activeProfiles配置到了profiles节点里了,应该把activeProfiles移到profiles之外,更多settings.xml配置信息请参考这里
    2. No goals
      问题
      Eclipse安装了Maven插件后,在项目的pom.xml上右键能看到如下:

      而我自作聪明地认为:Maven buildmvn compile 是等价的,于是我再点击"Maven build..."之后,“Goals”是空的,如:

      于是就报了这样的错误:

      [ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format:or:[:]:. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-site, site, post-site, site-deploy, pre-clean, clean, post-clean. -> [Help 1]

      解决
      解决方法至少有两种:
      • 再点击"Maven build..."之后,输入你要执行的“Goals”,如compile,clean,test等等;
      • 在pom.xml中配置默认的Goal,如:
        <build>
        	<defaultGoal>clean</defaultGoal>
        </build>
        作为project的子节点。
    3.  not a JRE
      问题
      在使用pom.xml配置默认Goal的时,如果默认的Goal为clean就没问题,但如果是如:
      <build>
      	<defaultGoal>clean compile</defaultGoal>
      </build>
      就会报错误:

      [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project Demo: Compilation failure
      [ERROR] Unable to locate the Javac Compiler in:
      [ERROR] C:Program FilesJavajre7..lib ools.jar
      [ERROR] Please ensure you are using JDK 1.4 or above and
      [ERROR] not a JRE (the com.sun.tools.javac.Main class is required).
      [ERROR] In most cases you can change the location of your Java
      [ERROR] installation by setting the JAVA_HOME environment variable.

      经过几番尝试,才发现并不是多个Goal的问题,而是compile Goal的问题。但使用命令的"mvn compile"又是OK的。
      几经折腾才发现错误里说的很清楚:Please ensure you are using JDK 1.4 or above and not a JRE",它需要的是JDK而不是JRE。我给的项目中使用的是公共JRE:

      解决
      修改Eclipse的配置,使用JDK:Eclipse->Window->Preferences->Java->Installed JREs

      Finish后,项目如:

    OK,知之为知之,不知创造条件必须知!!

    出处:http://www.zhaiqianfeng.com    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    3dsmax不同版本 pyside qt UI 设置max窗口为父窗口的方法
    oracle中的数据库和实例
    oracle中的表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)
    什么是WSE
    Server.Transfer,Response.Redirect的区别
    Oracle 中的几个数据类型介绍
    oracle中的连接字符串
    Oracle中的 单引号 和 双引号
    接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?
    聚簇索引
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4620130.html
Copyright © 2020-2023  润新知