这篇文章是关于自己发布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-apijavax.javaee-web-apijavax.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快照相关推荐

  1. glassfish 4配置_自己构建GlassFish 4.0快照

    glassfish 4配置 这篇文章是关于自己发布GlassFish 4.0快照的,其中包括一些黑客. 我找到了GlassFish FullBuild的官方说明,然后决定自己构建服务器. 有时,您可能 ...

  2. 使用GlassFish 4.0测试驱动Java API以处理JSON

    编写规范并为其做出贡献是一回事. 如果您想提供宝贵的反馈意见,请使用它并研究真实的示例. 最新推广的GlassFish构建包含重命名为4.0,我认为现在是对Java处理JSON(JSON-P)API进 ...

  3. 构建Koa2 + Vue2.0 前后端分离的多页应用

    换了家公司,技术栈由之前的 React 变成了现在的 Vue.之前也没怎么接触过 Vue,但现在需要搭建一个基于 Vue 的多页面应用,于是就网上搜了一番,顺便记录一下过程. client 配置 Vu ...

  4. 使用 WebSphere Portlet Factory 构建基于 Web2.0 的灵活 SOA 前端

    在许多门户的项目中,客户对门户的使用体验都有非常高的要求.基于现阶段的 portlet 技术对丰富的 Web 2.0 前端展现存在着一定的技术难度.WebSphere Portlet Factory ...

  5. NUC 11构建 ESXi 7.0.3f安装网卡驱动-V2(2022年7月升级版)

    NUC 11构建 ESXi 7.0.3f安装网卡驱动 一.进入powershell 环境 windows 10 操作系统,以管理员的身份打开cmd终端,执行 c:> powershell 二.查 ...

  6. 痞子衡嵌入式:串口调试工具Jays-PyCOM诞生记(2)- 界面构建(wxFormBuilder3.8.0)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串口调试工具Jays-PyCOM诞生之界面构建. 一个软件的UI界面是非常重要的,这是软件与用户交互的接口,软件功能即使再强大,但如果没 ...

  7. 低代码如何构建支持OAuth2.0的后端Web API

    OAuth2.0 OAuth 是一个安全协议,用于保护全球范围内大量且不断增长的Web API.它用于连接不同的网站,还支持原生应用和移动应用于云服务之间的连接,同时它也是各个领域标准协议中的安全层. ...

  8. 构建e-Health 3.0灾备生态圈——浪擎勇当领航者

    在为期三天的2016年中外医疗信息网络技术展览会上,浪擎循序渐进地为参会人员--带来医卫信息化构建中灾备产品和解决方案.前天,我们给百家医卫用户提供"智能容灾+"灾备产品服务.昨天 ...

  9. EasyPack - 可视化 Webpack 构建工具 1.0.3 更新

    关于easy-pack之前写过一篇EasyPack - 也许是最方便的 webpack 构建工具. 在掘金有反馈说希望支持webpack4.于是,就有了1.0.3. 做了几处更新: 支持 webpac ...

最新文章

  1. 程序员门槛再被“神器”降低:只要会英文,就能写代码!
  2. 通过组策略实现IE自动以当前域账号登录某站点
  3. JaveWeb学习之Servlet(二):ServletConfig和ServletContext
  4. 软工三(5.12上课)
  5. Pytorch 中 matmul 广播
  6. python 动态调整控件大小_python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例...
  7. visual设计的界面发布到iis上显示不一样_享声 SOUNDAWARE 发布可“全民HIFI“的网播一体机 A1...
  8. AAAI-19录用论文清单
  9. 无界面chrome + selenium爬虫
  10. Mac好用的RSS阅读器Reeder使用方法
  11. java 定义一个商品类_用java编写一个产品类, 1. 属性:产品编号,产品名称,产品单价,产品库存,2.构造方...
  12. 接口测试用例怎么写?一文1600字教你写一个优秀的接口测试的测试用例
  13. 初始C语言之简单认识C语言-1
  14. 主流手机CPU及机型介绍!手机CPU生产厂商介绍!高通QSD8250、MSM8255、TI OMAP 3630、nVIDIA Tegra 2介绍
  15. AD831混频器模块
  16. NVivo 2018 Essential Training NVivo 2018基础教程 Lynda课程中文字幕
  17. mysql中字符串拼接函数_MySQL 字符串连接CONCAT()函数
  18. LaTeX插入参考文献
  19. 去掉设备和驱动器的百度网盘
  20. 互联网思维——流量思维

热门文章

  1. tomcat(1)一个简单的web server
  2. java集合——java.util.Properties类
  3. hello world_建立无服务器的“ Hello World”功能
  4. 弱投影模型_通过投影增强数据模型
  5. java jvm调优_(第2部分,共3部分):有关性能调优,Java中的JVM,GC,Mechanical Sympathy等的文章和视频的摘要...
  6. gradle 命令行_Gradle命令行便利
  7. 设计模式 原型模式_设计模式:原型
  8. 将Swagger与Spring Boot REST API集成
  9. Java命令行界面(第10部分):picocli
  10. 适用于Java开发人员的Groovy吗? 认识Gradle,Grails和Spock