自己构建GlassFish 4.0快照
这篇文章是关于自己发布GlassFish 4.0快照的,其中包括一些黑客。 我找到了GlassFish FullBuild的官方说明,然后决定自己构建服务器。 有时,您可能不想等待团队升级GlassFish构建文件。 在本条目中,我将Artifactory称为私有Maven存储库,当然,您也可以使用其他东西。 从Subversion自己签出GlassFish 4.0的源代码:
svn checkout https://svn.java.net/svn/glassfish~svn/trunk/main glassfish-main
您需要修改工作站的Maven设置文件以排除Eclipse工件。这是我配置的settings.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.0http://maven.apache.org/xsd/settings-1.0.0.xsd'><!--Maven http://maven.apache.org/settings.html --><localRepository/><interactiveMode/><usePluginRegistry/><offline/><pluginGroups/><servers><server><id>ACME-ARTIFACTORY-PRIVATE</id><username>administrator</username><password>password</password></server></servers><mirrors><mirror><id>maven-central</id><url>http://repo1.maven.org/maven2/</url><mirrorOf>central,!eclipselink.repository</mirrorOf></mirror></mirrors><proxies/><profiles/><activeProfiles/>
</settings>
在编译整个GlassFish代码之前,我们需要破解POM文件,以便它们将工件安装到我们的专用Artifactory服务器中,而不是Maven Central中。 将以下节添加到分发中的POM文件中:
<distributionManagement><repository><id>ACME-ARTIFACTORY-PRIVATE</id><name>acme-releases</name><url>http://peabody.internal.acme.com/artifactory/ACME-ARTIFACTORY-PRIVATE</url></repository><snapshotRepository><id>ACME-ARTIFACTORY-PRIVATE</id><name>acme-snapshots</name><url>http://peabody.internal.acme.com/artifactory/ACME-ARTIFACTORY-PRIVATE</url></snapshotRepository></distributionManagement>
在上面的节中,将ACME的定义编辑到您私有的Artifactory服务器,然后将其复制以下POM文件:
main/pom.xml
main/appserver/javaee-api/pom.xml
main/appserver/pom.xml
main/nuclues/pom.xml
这是一个讨厌的黑客,因为我不喜欢您无法设置从配置更改部署服务器和凭据。 其他源代码允许通过Maven配置文件甚至属性文件配置部署服务器。 确保您的Maven设置适用于Artifactory部署,并且我们还设置了Maven构建过程。 设置环境变量MAVEN_OPTS,以使Maven有足够的内存,并且永久生成足够高,以避免编译期间出现内存不足异常。
MAVEN_OPTS=-Xmx1024m -Xms256m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled
如果您有16GB RAM工作站,为什么不将其最大化以编译整个GlassFish? 垃圾收集算法更改为并发标记和清除算法,并且我们还将启用的类卸载设置为启用。 您准备好进行编译,输入以下命令:
cd glassfish-main
svn update
mvn clean
mvn install -DskipTests=true
在像样的Intel Core i5 / i7机器(2012)上,让自己成为大约20分钟的热饮料和小吃。 休息一下。 请注意,我们在这里避免运行单元测试,而跳过了测试,因为我们只想快速地在仓库中发布工作版本,但这并不是说测试很糟糕。 成功编译所有模块之后,现在您可以部署到私有Maven存储库。 如果遵循先前的说明(关于将节复制到单个POM文件),则可以从根目录执行此命令。
cd glassfish-main
mvn deploy -DskipTests=true
将工件部署到Artifactory之后,检查快照4.0版本的存储库,它们都应该存在。 现在下降到Java EE项目文件夹。 破解POM文件glassfish-main/appserver/javaee-api/javax.javaee-api/pom.xml
。 它在build部分中缺少maven源插件,因此,默认情况下,它不会生成源JAR,这对于查看新的JavaEE 7 API很有用! 查找XPath project/build/plugins
然后将以下节附加到该POM。
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><executions><execution><id>attach-sources</id><phase>package</phase><goals><goal>jar-no-fork</goal></goals></execution></executions></plugin>
执行以下命令行,以部署Java EE api工件
cd glassfish-main/appserver/javaee
mvn deploy -DskipTests=true
由于某种原因,主要执行不会自动安装javax.javaee-api
工件。 执行此行将为三个基础模块生成JAR和SOURCES JAR: javax.javaee-api
, javax.javaee-web-api
和javax.javaee-endorsed-api
。 转至Artifactory,查看工件已全部部署。 然后,您可以像这样编写Gradle构建文件:
repositories {maven {credentials {username 'administrator'password 'passowrd'}url 'http://peabody.internal.acme.com/artifactory/ACME-ARTIFACTORY-PRIVATE'}maven {url 'https://maven.java.net/content/groups/promoted'}maven {url 'http://repository.jboss.org/nexus/content/groups/public'}
}dependencies {providedCompile 'org.glassfish.main.extras:glassfish-embedded-all:4.0-SNAPSHOT'providedCompile 'javax:javaee-api:7.0-bpeter-private'providedCompile 'javax:javaee-web-api:7.0-bpeter-private'compile 'org.glassfish.main.extras:glassfish-embedded-all:4.0-SNAPSHOT'compile 'javax:javaee-api:7.0-bpeter-private'testCompile 'junit:junit:4.10'
}
特别是,请注意,构建版本注释为7.0-bpeter-private
。 我尚未解决的难题的最后一部分是如何配置build.id
Maven属性,以便我可以自定义内部版本号。 仍然是一个谜。 如果您碰巧知道答案,请给我响铃。 干杯!
参考:在Peter Pilgrim的博客博客中,我们的JCG合作伙伴 Peter Pilgrim 自己构建了GlassFish 4.0快照 。
翻译自: https://www.javacodegeeks.com/2013/03/build-glassfish-4-0-snapshots-yourself.html
自己构建GlassFish 4.0快照相关推荐
- glassfish 4配置_自己构建GlassFish 4.0快照
glassfish 4配置 这篇文章是关于自己发布GlassFish 4.0快照的,其中包括一些黑客. 我找到了GlassFish FullBuild的官方说明,然后决定自己构建服务器. 有时,您可能 ...
- 使用GlassFish 4.0测试驱动Java API以处理JSON
编写规范并为其做出贡献是一回事. 如果您想提供宝贵的反馈意见,请使用它并研究真实的示例. 最新推广的GlassFish构建包含重命名为4.0,我认为现在是对Java处理JSON(JSON-P)API进 ...
- 构建Koa2 + Vue2.0 前后端分离的多页应用
换了家公司,技术栈由之前的 React 变成了现在的 Vue.之前也没怎么接触过 Vue,但现在需要搭建一个基于 Vue 的多页面应用,于是就网上搜了一番,顺便记录一下过程. client 配置 Vu ...
- 使用 WebSphere Portlet Factory 构建基于 Web2.0 的灵活 SOA 前端
在许多门户的项目中,客户对门户的使用体验都有非常高的要求.基于现阶段的 portlet 技术对丰富的 Web 2.0 前端展现存在着一定的技术难度.WebSphere Portlet Factory ...
- NUC 11构建 ESXi 7.0.3f安装网卡驱动-V2(2022年7月升级版)
NUC 11构建 ESXi 7.0.3f安装网卡驱动 一.进入powershell 环境 windows 10 操作系统,以管理员的身份打开cmd终端,执行 c:> powershell 二.查 ...
- 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记(2)- 界面构建(wxFormBuilder3.8.0)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生之界面构建. 一个软件的UI界面是非常重要的,这是软件与用户交互的接口,软件功能即使再强大,但如果没 ...
- 低代码如何构建支持OAuth2.0的后端Web API
OAuth2.0 OAuth 是一个安全协议,用于保护全球范围内大量且不断增长的Web API.它用于连接不同的网站,还支持原生应用和移动应用于云服务之间的连接,同时它也是各个领域标准协议中的安全层. ...
- 构建e-Health 3.0灾备生态圈——浪擎勇当领航者
在为期三天的2016年中外医疗信息网络技术展览会上,浪擎循序渐进地为参会人员--带来医卫信息化构建中灾备产品和解决方案.前天,我们给百家医卫用户提供"智能容灾+"灾备产品服务.昨天 ...
- EasyPack - 可视化 Webpack 构建工具 1.0.3 更新
关于easy-pack之前写过一篇EasyPack - 也许是最方便的 webpack 构建工具. 在掘金有反馈说希望支持webpack4.于是,就有了1.0.3. 做了几处更新: 支持 webpac ...
最新文章
- 程序员门槛再被“神器”降低:只要会英文,就能写代码!
- 通过组策略实现IE自动以当前域账号登录某站点
- JaveWeb学习之Servlet(二):ServletConfig和ServletContext
- 软工三(5.12上课)
- Pytorch 中 matmul 广播
- python 动态调整控件大小_python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例...
- visual设计的界面发布到iis上显示不一样_享声 SOUNDAWARE 发布可“全民HIFI“的网播一体机 A1...
- AAAI-19录用论文清单
- 无界面chrome + selenium爬虫
- Mac好用的RSS阅读器Reeder使用方法
- java 定义一个商品类_用java编写一个产品类, 1. 属性:产品编号,产品名称,产品单价,产品库存,2.构造方...
- 接口测试用例怎么写?一文1600字教你写一个优秀的接口测试的测试用例
- 初始C语言之简单认识C语言-1
- 主流手机CPU及机型介绍!手机CPU生产厂商介绍!高通QSD8250、MSM8255、TI OMAP 3630、nVIDIA Tegra 2介绍
- AD831混频器模块
- NVivo 2018 Essential Training NVivo 2018基础教程 Lynda课程中文字幕
- mysql中字符串拼接函数_MySQL 字符串连接CONCAT()函数
- LaTeX插入参考文献
- 去掉设备和驱动器的百度网盘
- 互联网思维——流量思维
热门文章
- tomcat(1)一个简单的web server
- java集合——java.util.Properties类
- hello world_建立无服务器的“ Hello World”功能
- 弱投影模型_通过投影增强数据模型
- java jvm调优_(第2部分,共3部分):有关性能调优,Java中的JVM,GC,Mechanical Sympathy等的文章和视频的摘要...
- gradle 命令行_Gradle命令行便利
- 设计模式 原型模式_设计模式:原型
- 将Swagger与Spring Boot REST API集成
- Java命令行界面(第10部分):picocli
- 适用于Java开发人员的Groovy吗? 认识Gradle,Grails和Spock