由于工作原因,笔者需要对Glassfish v3中部署的应用进行监控。在编译Open Source版本的Glassfish过程中,遇到了不少问题;在搜集了一些资料后终于成功编译,于是下面就是具体的编译过程:
编译中使用的工具:
- apache-subversion 1.7.7
- maven 2.2.1(据Glassfish的wiki,Glassfish 3.x只能使用这个版本的maven编译)
- JDK 1.6 Update Release 4或以上(目前不支持JDK1.7,未来会支持
具体编译过程:
- 下载源代码
这里使用SVN下载Glassfish的源码。使用命令行
svn checkout https://svn.java.net/svn/glassfish~svn/tags/3.1-no-delete
笔者曾尝试下载较新版本的Glassfish v3.1.2的源码,但在编译过程中maven总会出现问题,无奈之下选择了较旧的3.1版本。
- 配置maven
在编译之前,需要简单配置一下maven。首先需要增加maven参数到环境变量
MAVEN_OPTS = -Xmx1024M -XX:MaxPermSize=512m
修改maven的配置文件setting.xml,文件位置为maven目录的conf文件夹下,增加mirrors节点
<mirror> <id>maven-central</id> <url>http://repo1.maven.org/maven2/</url> <mirrorOf>*,!eclipselink.repository,!netbeans.repository</mirrorOf> </mirror>
以及profiles节点
<profile> <id>gf-repo</id> <repositories> <repository> <id>eclipselink.repository</id> <name>EclipseLink Repo</name> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> <url>http://download.eclipse.org/rt/eclipselink/maven.repo/</url> <layout>default</layout> </repository> <repository> <id>netbeans.repository</id> <name>Maven Repo containing NetBeans artifacts</name> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> <url>http://dev.nightlabs.org/maven-repository/repo/</url> <layout>default</layout> </repository> </repositories> </profile>
- 编译
编译过程较简单,使用命令行
mvn -Pgf-repo install
然后等上一段时间。。。
笔者在编译Glassfish v3.1.1源代码时,会出现unit test failure导致编译失败的情况。可以添加参数-DskipTests=true来跳过单元测试使编译通过。
- 运行Glassfish v3
编译成功以后会在源文件目录\distributions\glassfish\target\目录下面生成一个glassfish.zip文件。解压缩以后,cd到glassfish3\bin\,运行命令行
asadmin start-domain
即可启动Glassfish。