A. 求教maven
对java完全不熟悉,但遇到一个项目,要调试这方面的代码,用pom管理的,我用maven编译可以正常通过,但用
maven clean install命令时报如下错误, 望高手指点一下。
[info] ------------------------------------------------------------------------
[info] build FAILURE
[info] ------------------------------------------------------------------------
[info] total time: 2.503s
[info] Finished at: sat Jun 11 12:27:15 cst 2011
[INFO] Final Memory: 6M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war (default-war) on project cdmi-server: Error assembling WAR: Failed to read filesystem attributes for: /usr/cdmi/java/javasrc/target/cdmi-server/WEB-INF/web.xml: Failed to retrieve numeric file attributes using: '/bin/sh -c ls -1nlad /usr/cdmi/java/Javasrc/target/cdmi-server/WEB-INF/web.xml' -> [Help 1]
[ERROR]
B. android Studio编译慢、卡死和狂占内存怎么破
在2020年,仍然使用2g内存的电脑,你可以改变职业。没有合适的设备,什么都没用。Android Studio是内存,设备烂卡死不可避免,要解决卡的问题,一定要升级硬件设备。另一些人则说,对修辞学的回答相当有力,在一定程度上,加快编译的速度,却不能解决卡死的问题,没有人能解释为什么会加快编译的速度。
至于加快编译,有一种方法,我认为一些主要适用性的答案并不强,实际上应该从gradle开始,什么不是正确的地方,也请轻喷,有什么问题可以留个信息。
我谈到了下面的所有步骤,建议在最后进行。在终端编译中有很多好处:
能观察整个编译过程,帮助理解层次构建过程;
可以看出哪些任务在编译过程中耗费时间,可以较慢地编写出适合的补救方案;
可以终止编译,如果在某个阶段被卡住,CTRL + c终止编译,Android也会终止在Studio中编译,但基本上九次会失败;
因为它最终会对Android Studio产生影响,基本不会导致Android Studio caton;不满足Android工作室的各种bug ?
最后,为什么要减少设置中模块的数量。Gradle实际上可以加速编译,但是有很多限制?
首先,我们认为编译过程,首先解析gradle配置,设置任务依赖于有向图,然后执行每个任务的模块,如果我们通过maven的依赖关系,使用模块的aar(单android库),如果我们想要改变文件在这个模块,不要再次修改上传下载,每次都是很好,但是有一个致命的问题:不修改版本号,快照通常不是做的想法。这可能导致一些不会生效的变化,并且需要时间来解决这个问题。但是,有一种方法可以在一定程度上解决这个问题,并添加以下脚本:
项目。配置。所有(新操作<配置> ({@ Overridevoidexecute(配置文件){文件)。ResolutionStrategy。TimeUnit CacheDynamicVersionsFor(5。分钟)
文件。ResolutionStrategy。TimeUnit CacheChangingMolesFor(0。秒)} })
有人会问,插件,每个人都要开发一个模块,对于每个模块的维护都要打包到maven,每次我修改,甚至很小的改动,也要做一个上传,就会遇到快照不做同样的问题。嘿,嘿,这个问题,我们公司有一个等级插件,已经解决了,至于解决方案,是公司机密,我不会说。
一件事,我相信大多数开发人员共同发展是单一模块,该模块的情况并不多,所以最基本的也是依赖aar或罐子里,并不存在所谓的图书馆aar上传,所以一些答案的耶和华说并不意味着什么,这就是为什么我说影响编译速度的情况主要集中在它的生命周期的第三阶段,第三阶段的优化,看到我的答案。
C. Android 开发,Android Studio编译慢,卡死和狂占内存怎么破
已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。
开启gradle单独的守护进程
在下面的目录下面创建gradle.properties文件:
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
并在文件中增加:
org.gradle.daemon=true
同时修改项目下的gradle.properties文件也可以优化:
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true
# Enables new incubating mode that makes Gradle selective when configuring projects.
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true
同时上面的这些参数也可以配置到前面的用户目录下的gradle.properties文件里,那样就不是针对一个项目生效,而是针对所有项目生效。
上面的配置文件主要就是做, 增大gradle运行的java虚拟机的大小,让gradle在编译的时候使用独立进程,让gradle可以平行的运行。
修改android studio配置
在android studio的配置中,开启offline模式,以及修改配置。实际上的配置和上面的一大段一样,主要是在这个地方配置的只会在ide构建的时候生效,命令行构建不会生效。
命令行构建
基于上面的配置,命令行构建时在命令后面加上这个参数即可 --daemon --parallel --offline。
引入依赖库时使用aar
使用网上第三方的依赖库时尽量使用aar,可以在mavenhttp://gradleplease.appspot.com/或者githuhttps://github.com/Goddchen/mvn-repo搜索。
自己的库模块也可以打包成aar,关于这个可以参考stormzhang的文章http://www.stormzhang.com/android/2015/03/01/android-reference-local-aar/。
D. maven build 内存溢出怎么解决
Windows环境中
找到文件%M2_HOME%\bin\mvn.bat ,这就是启动Maven的脚本文件,在该文件中你能看到有一行注释为:
@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE...
它的意思是你可以设置一些Maven参数,我们就在注释下面加入一行:
set MAVEN_OPTS= -Xms128m -Xmx512m
之后,当你运行Maven命令如 mvn -version 的时候,你会看到如下的输出:
E:\test>mvn -version
E:\test>set MAVEN_OPTS= -Xms128m -Xmx512m
Maven version: 2.0.9
Java version: 1.6.0_07
OS name: "windows 2003" version: "5.2" arch: "x86" Family: "windows"
我们看到,配置的Maven选项生效了,OutOfMemoryError也能得以相应的解决。
Linux环境中
也可以通过设置环境变量解决该问题, 如,编辑文件 /etc/profile 如下
MAVEN_OPTS=-Xmx512m
export JAVA_HOME MAVEN_HOME MAVEN_OPTS JAVA_BIN PATH CLASSPATH
如果你使用Hudson
用 Hudson + Maven做持续集成,并不幸也遇到了类似的错误,那么上述两种方式都将不再起作用了,因为Hudson使用自己的maven-agent来启动Maven,不会去调用Maven的脚本,自然相应的配置也就无效了。
好在Hudson也给为我们提供了配置点,在Hudson的项目配置页面中,有一块Build区域,这里我们已经设置了Root Pom和Goals。注意该区域的右下角有一个"Advanced..."按钮,点击会看到MAVEN_OPTS输入框,这里输入"-Xmx512m"就 OK了。
m2eclipse中
类似以上的方法都会失效,所幸m2eclipse提供了配置点。步骤如下:
项目上右击 -> Run As -> Run Configurations -> Maven Build 上右击 -> New
这时会看到一个maven运行配置对话框,这里面其它的配置我不多解释了,为了解决内存溢出的问题,我们可以选择第二个TAB: JRE,然后在VM arguments中输入配置如:-Xms128m -Xmx512m
E. Android Studio编译慢,卡死和狂占内存怎么破
已经使用AndroidStudio进行开发超过一年,随着项目的增大,依赖库的增多,构建速度越来越慢,现在最慢要6分钟才能build一个release的安装包,在网上查找资料,发现可以通过一些配置可以加快速度,这里跟大家分享一下。开启gradle单独的守护进程在下面的目录下面创建gradle.properties文件:/home//.gradle/(Linux)/Users//.gradle/(Mac)C:\Users\\.gradle(Windows)并在文件中增加:org.gradle.daemon=true同时修改项目下的gradle.properties文件也可以优化:#Project-wideGradlesettings.#IDE(e.g.AndroidStudio)users:##configuredthroughtheIDE.###sec:configuration_on_demandorg.gradle.configureondemand=true同时上面的这些参数也可以配置到前面的用户目录下的gradle.properties文件里,那样就不是针对一个项目生效,而是针对所有项目生效。上面的配置文件主要就是做,增大gradle运行的java虚拟机的大小,让gradle在编译的时候使用独立进程,让gradle可以平行的运行。修改androidstudio配置在androidstudio的配置中,开启offline模式,以及修改配置。实际上的配置和上面的一大段一样,主要是在这个地方配置的只会在ide构建的时候生效,命令行构建不会生效。命令行构建基于上面的配置,命令行构建时在命令后面加上这个参数即可--daemon--parallel--offline。引入依赖库时使用aar使用网上第三方的依赖库时尽量使用aar,可以在maven/android/2015/03/01/android-reference-local-aar/。
F. 如何用maven将java8写的代码编译为java6平台的
在一般的Java应用开发过程中,开发人员使用Java的方式比较简单。打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行Java 程序就可以了。这种开发模式背后的过程是:开发人员编写的是Java源代码文件(.java),IDE会负责调用Java的编译器把Java源代码编译成平台无关的字节代码(byte code),以类文件的形式保存在磁盘上(.class)。Java虚拟机(JVM)会负责把Java字节代码加载并执行。Java通过这种方式来实现其“编写一次,到处运行(Write once, run anywhere)” 的目标。Java类文件中包含的字节代码可以被不同平台上的JVM所使用。Java字节代码不仅可以以文件形式存在于磁盘上,也可以通过网络方式来下载,还可以只存在于内存中。JVM中的类加载器会负责从包含字节代码的字节数组(byte[])中定义出Java类。在某些情况下,可能会需要动态的生成 Java字节代码,或是对已有的Java字节代码进行修改。这个时候就需要用到本文中将要介绍的相关技术。首先介绍一下如何动态编译Java源文件。
G. maven 编译项目问题
maven项目编译的标准输出路径就是mavenProject/target/classes, 项目右键 build path--configure build path--java build path--source,把default output folder改成mavenProject/target/classes,在菜单栏project下把自动编译打勾。
H. 用maven编译项目时出现“运行mvn clean install -Dmaven.”问题怎么办
在/etc/profile配置java的环境变量: 你的mvn 项目是用哪个版本的jdk.,就要配置那个版本的jdk。
强制保存文件命令:w !sudo tee %
此时在进入项目执行:$ git pull origin master
继续mvn clean install
I. 新手学习maven,出错了
你的maven在编译打包的时候无法找到JUnit的JAR包,因此不能完成编译打包过程。你需要在项目中引入JUnit的包。既然你使用Maven,那么就可以在Maven中配置依赖JAR包。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>