1 环境变量配置
原本是好好的。我想重新安装appfuse,就把工程删掉,修改环境变量配置,把我认为不必要的变量删去。运行mvn integration-test时抛出错误:
ERROR: JAVA_HOME is set to an invalid directory.
JAVA_HOME = C:/Program Files/jdk1.5
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation
看来是环境变量出了问题,可是刚才还好好的,怎么半路上抛错呢?我很怀疑是微点的事,因为这中间,微点把java.exe当成了蠕虫病毒来报警。我把微点卸载了。重新配置环境变量,试了很多次,仍是抛错,十分郁闷。
到网上搜索了半天,总算找到了一点线索:http://jira.codehaus.org/browse/MAVEN-1588
到jdk1.5/bin目录下察看一下,没有java.exe这个文件;jre/bin目录下,却有它。于是我把它copy到jdk/bin下,运行mvn --version,恢复正常了,呵呵:)
关键是这句话提醒了我:it looks for %JAVA_HOME%/bin/java.exe, so d:/Sun/Appserver/bin/java.exe probably doesn't exist 。
2 jar:1.0-SNAPSHOT
在web目录下运行mvn jetty:run-war是抛错:
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.
Missing:
----------
1) com.mycompany.app:myproject-core:jar:1.0-SNAPSHOT
Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId=com.mycompany.app -DartifactId=myprojec
t-core -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file
Alternatively, if you host your own repository you can deploy the file there:
mvn deploy:deploy-file -DgroupId=com.mycompany.app -DartifactId=myproject-
core -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -Dr
epositoryId=[id]
Path to dependency:
1) com.mycompany.app:myproject-webapp:war:1.0-SNAPSHOT
2) com.mycompany.app:myproject-core:jar:1.0-SNAPSHOT
----------
1 required artifact is missing.
for artifact:
com.mycompany.app:myproject-webapp:war:1.0-SNAPSHOT
from the specified remote repositories:
central (http://repo1.maven.org/maven2),
appfuse (http://static.appfuse.org/repository)
这个jar包可以在myproject/core/target目录下找到,按照提示,运行mvn install:install-file -DgroupId=com.mycompany.app -DartifactId=myprojec
t-core -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file(此处替换为实际路径和文件名),然后重新运行mvn jetty:run-war
3 java heap space
这个问题的根源是jvm虚拟机的默认heap大小是64M,可以通过设置其最大和最小值来实现.设置的方法主要是几个.
- 可以在windows 更改系统环境变量
加上JAVA_OPTS=-Xms64m -Xmx512m - 如果用的tomcat,在windows下,可以在C:/tomcat5.5.9/bin/catalina.bat 中加上:set JAVA_OPTS=-Xms64m -Xmx256m,位置在: rem Guess CATALINA_HOME if not defined 这行的下面加合适.
- 如果是linux系统
Linux 在{tomcat_home}/bin/catalina.sh的前面,加
set JAVA_OPTS='-Xms64 -Xmx512'
4 jtidy-r8-20060801.pom
[WARNING] POM for 'org.hibernate:jtidy:pom:r8-20060801:runtime' is invalid. It w
ill be ignored for artifact resolution. Reason: Parse error reading POM. Reason:
TEXT must be immediately followed by END_TAG and not START_TAG (position: START
_TAG seen ...<licenses>/n/t/t/t<license>... @12:13) for project org.hibernate:j
tidy at C:/appfuse2/repository/org/hibernate/jtidy/r8-20060801/jtidy-r8-20060801
.pom
[INFO] [appfuse:full-source]
[INFO] [AppFuse] Installing source from web-common module...
[INFO] [AppFuse] Installing source from spring module...
这是一个bug,找到这个文件,打开,看这里:
<licenses>
<licenses>
<license>
<name>Java HTML Tidy License</name>
<url>http://svn.sourceforge.net/viewvc/*checkout*/jtidy/trunk/jtidy/LICENSE.txt?revision=95</url>
<distribution>repo</distribution>
</license>
<licenses>
</licenses>
删去红色的元素。