• 【maven】maven各种奇葩问题


    问题1:Could not calculate build plan: Plugin org.apache... 不能成功创建maven项目

     

    解决方法1:

    http://repo1.maven.org/maven2这个中央仓库地址已经被屏蔽了,不能访问,所以maven用到的插件和jar下载失败,且你的电脑上的本地仓库.m2并没有下载好maven的插件等,项目自然不能正常执行maven命令。解决方法,1.如果没有私服(例如nexus),那么就把‘另外电脑中‘的本地仓库.m2目录拷贝到你的电脑上,并在maven conf settings.xml里面设置<localRepository>为.m2目录。2.有私服,就在settings.xml里面配置nexus地址,从它上面下载。

    问题2:

    转Maven project是生成的pom.xml文件错误——Unknown packaging:apk以及Failed to collect dependencies for xxx.xx.…….generation2:android-maven.plugin:3.5.3...

    描述,因为错误没办法重现了,所以也记不太清楚具体的错误内容,不过错误提示分别在<packaging>apk</packaging>和第一行处
    解决办法,添加本地库支持,因为中央库的东西有时候连接不上获取不了,所以我们使用本地的   <repositories>
          <repository>
              <id>my-internal-site</id>
              <url>file:///${env.HOME}/.m2/repository</url>
          </repository>
      </repositories>
    也许是这个原因吧,我也不清楚,不过这样的确不报错了。
     
    问题3:
     
    pom.xml文件错误——Cannot read lifecycle mapping metadata for artifact……
    描述,这个错误是在problems这个试图里看到的,指向pom.xml文件的第一行,网上查到的解决办法是删除~\.m2\repository这个文件夹,然后本地库重新从中央库下载
     
    问题4:
     
    执行命令mvn clean install出错——could not found tool ‘aapt’
    描述,SDK里面aapt.exe是用来打包apk文件的,不过它的位置很诡异,api4是位于platforms文件夹的android-4文件夹下的tools文件夹里,而api17则是位于build-tools的17.0.0文件夹下,Maven似乎在执行命令的时候会在pom.xml文件找platform属性,如果是4,那么就去对应的platforms文件夹的andoird-4文件夹下面找aapt.exe,但是如果是10,这是找不到的,因为没有android-10\tools\aapt.exe这个文件,所以当然报错
    解决办法,我们需要手动拷贝,将build-tools\17.0.0下的所有内容拷贝到android-10\tools文件夹内(需要自己创建tools文件夹)。为什么用17.0.0下的aapt.exe,下面还会说到。
     
    问题5:
     
    执行命令mvn clean install出错——MojoExecutionException: ANDROID-040-001: Could not execute: Command ……
    描述,大致上就是说没办法执行一个aapt命令,类似于这样的一个命令无法执行
    D:\Android\Android_SDK\platforms\android-4\tools\aapt.exe package -m -J G:\工程文件\Eclipse3\aaa\target\generated-sources\r -M G:\工程文件\Eclipse3\aaa\AndroidManifest.xml -S G:\工程文件\Eclipse3\aaa\res --auto-add-overlay -A G:\工程文件\Eclipse3\aaa\assets -I D:\Android\Android_SDK\platforms\android-4\android.jar
    我们单独在控制台执行这个命令,得到的输出是“命令行太长”,我真无语了。
    解决办法,想办法缩减文件夹的结构。。。。
     
    问题6:
     
    执行命令mvn clean install出错——MojoExecutionException: ANDROID-040-001: Could not execute: Command ……
    描述,命令缩减之后依然无法执行,不过这时候的命令是这样的
    D:\Android\Android_SDK\platforms\android-4\tools\aapt.exe package -f -M G:\a\aaa\AndroidManifest.xml -S G:\a\aaa\res --auto-add-overlay -A G:\a\aaa\target\generated-sources\combined-assets\assets -I D:\Android\Android_SDK\platforms\android-4\android.jar -F G:\a\aaa\target\aaa.ap_ --debug-mode
    多了一个--debug-mode,我们单独在控制台执行这个命令,会发现提示显示的是aapt不支持--debug-mode这个参数,尼玛,简直坑爹有没有。然后我用了build-tools下面的aapt.exe发现可以使用这个参数,于是你明白了之前为什么我要拷贝17.0.0文件夹下的aapt.exe了
    解决办法,删掉android-4下面的aapt相关文件,从17.0.0文件夹下拷贝东西过来。
     
    问题7:
    在Eclipse右键项目选择Run as-maven install出错——complier could not found,Perhaps you are running on a JRE rather than a JDK
    描述,不是急的太清了,反正意思就是找不到编译器,说我们可能使用安装的jre运行而不是jdk里面的jre运行。
    解决办法,window-Preferences-java-installed JREs,选择add,找到自己的jdk路径,确定之后选择jdk,不要选择jre
     
    问题8:
    在pom.xml添加dependency时出错误——Missing artifact……
    描述,修改pom.xml并保存,maven就会去连接中央库(可能是企业内部的)来更新本地库,有时候网络状况不佳的时候会出现连接中央库timeout,那么此时就会出现missing artifact错误了
    解决办法,在.m2/repo...文件夹下面找到这个artifact的文件夹,删掉,然后重新保存pom.xml,当然如果依然timeout,自己想办法吧。

    问题9:
    no android sdk path could be found
    描述,有时候maven没办法找到sdk的路径,即使你配置了ANDROID_HOME环境变量,这时候需要在$HOME/.m2文件夹下创建setting.xml文件,向其中加入以下配置信息
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 
    <profiles> 
    <profile> 
    <id>android</id> 
    <properties> 
    <android.sdk.path> PATH / TO / THE / ANDROID / SDK </android.sdk.path> 
    </properties> 
    </profile> 
    </profiles> 
    <activeProfiles> 
    <!--make the profile active all the time --> <activeProfile>android</activeProfile> </activeProfiles> 
    </settings>
  • 相关阅读:
    SQL分页存储过程——表名、返回的列、排序字段、排序类型、条件、页尺寸、页码
    SQL——触发器——插入触发器——边学边项目写的。
    SQL链表查询 数据库为空
    【错误积累】更新失败,数据包解压时出现错误!
    VS使用技巧(转)
    命令模式
    代理模式
    模板方法模式
    享元模式
    MongoDB 分片2
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/5591778.html
Copyright © 2020-2023  润新知