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

glassfish 4配置

这篇文章是关于自己发布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配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

julia与python对比_有人说Julia比Python好,还给出了5个理由

选自medium作者&#xff1a;Emmett Boudreau机器之心编译参与&#xff1a;杜伟、张倩、肖清本文作者从速度、通用性、多重派发、适用于 ML 的程度和包管理器 5 个方面阐述了 Julia 语言相较于 Python 的优势所在。Julia 是一种多范式的函数式编程语言&#xff0c;用于机器学习和…

使用Flowable.generate()生成可感知背压的流– RxJava常见问题解答

RxJava缺少创建无限自然数流的工厂。 这样的流很有用&#xff0c;例如&#xff0c;当您想通过压缩两个事件的唯一序列号给可能的无限事件流时&#xff1a; Flowable<Long> naturalNumbers //???Flowable<Event> someInfiniteEventStream //... Flowable<P…

java字符串构造函数的应用_StringTokenizer类的使用

StringTokenizer是一个用来分隔String的应用类&#xff0c;相当于VB的split函数。1.构造函数public StringTokenizer(String str)public StringTokenizer(String str, String delim)public StringTokenizer(String str, String delim, boolean returnDelims)第一个参数就是要分…

linkedhashmap获取第n个元素_机试真题分享——交换链表前后第K个元素

题目描述给定一个编码链表和一个加密条件K&#xff0c;对编码进行加密。加密规则&#xff1a;把编码从前往后开始数第K个元素和从后往前数第K个元素进行交换。注意&#xff1a;编码的长度为0.第一个编码的序号是1.示例&#xff1a;输入&#xff1a;[1 2 3 4 5 6] 2输出&#xf…

maven java 参数_将Maven参数注入Java类

我想将settings.xml配置文件参数注入Java类.我尝试使用maven-annotation-plugin,但值为null.我想知道这是不是因为这个插件是为Mojo设计的Setting.xml片段APP_NAMEUSER_EMAILUSER_PASSWORD在班上Parameter(defaultValue "test.email", readonly true)private Strin…

Spring Boot Admin –用于管理Spring Boot应用程序的Admin UI

作为微服务开发的一部分&#xff0c;我们许多人都将Spring Boot与Spring Cloud功能一起使用。 在微服务领域&#xff0c;我们将有许多Spring Boot应用程序将在相同/不同的主机上运行。 如果将Spring Actuator添加到Spring Boot应用程序中&#xff0c;我们将获得很多现成的端点来…

md5与des算法有何不同_Python算法详解:为什么说算法是程序的灵魂?

算法是程序的灵魂,只有掌握了算法,才能轻松地驾驭程序开发。软件开发工作不是按部就班,而是选择一种最合理的算法去实现项目功能。算法能够引导开发者在面对一个项目功能时用什么思路去实现,有了这个思路后,编程工作只需要遭循这个思路去实现即可。本章将详细讲解计算机算法的基…

java json 解析null_解析包含null的原始json数组

Json数组遇新是直朋能到&#xff1a;{"userName":null," msgArr":[null],"numrow":0} //String resultGson&#xff1a;new Gson().fromJson(result, MyClass.class);MyCl作一新求抖直微圈ass:public String userName;public int[] msgArr;...错…

python运维脚本部署jdk_基于Java/Python搭建Web UI自动化环境

Java搭建UI自动化测试环境下载JDK8https://www.cnblogs.com/thloveyl/p/12378124.html配置Java环境1.解压Jdk压缩包2.配置环境变量计算机->属性->高级->环境变量->系统变量->Path3.添加根目录下的bin与lib目录、jre下的bin目录(近期我发现只将bin目录加入Path就…

eclipse JAVA用户注册_如何eclipse编写一个简单实用的登陆界面

花了点时间写了一个简单的页面&#xff1a;package test;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class UserInterface extends JFrame implements WindowListener{JFrame jf;JPanel jpan1,jpan2,jpan3;JLabel username,password,lspace;JText…

java内存泄漏案例_寻找内存泄漏:一个案例研究

java内存泄漏案例一周前&#xff0c;我被要求修复一个有内存泄漏问题的webapp。 考虑到过去两年左右的时间里我已经看到并修复了数百个泄漏&#xff0c;我想这有多难。 但是事实证明这是一个挑战。 12小时后&#xff0c;我发现该应用程序中不少于5个漏洞&#xff0c;并设法修复…

doc无法编译java文件_java编译成jar文件.doc

java编译成jar文件Java程序打包成jar包(2012-06-08 10:28:23)转载▼标签&#xff1a;分类&#xff1a; 方法一&#xff1a;通过jar命令jar命令的用法&#xff1a;下面是jar命令的帮助说明&#xff1a;用法&#xff1a;jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-p…

python 档案管理系统_Python 写入档案的 4 个方法

在 Python 写入档案内容跟读取档案差不多, 也很简单方便&#xff0c;以下会介绍用 Python 逐行读取档案内容的 4 种方法。在看例子前先要了解开启档案的参数, 一般上读取档案会用 “r”, 即唯读的意思, 如果要写入档案, 分别可以用 “w” (即 write 的意思) 或 “a” (即 appen…

高可用性(HA),会话复制,多VM Payara群集

抽象 在研究如何创建高可用性&#xff08;HA&#xff09;时&#xff0c;我发现了会话复制的多机Payara / GlassFish群集&#xff0c;无法在一个参考中找到所需的一切。 我认为这将是一个普遍的需求并且很容易找到。 不幸的是&#xff0c;我的假设是错误的。 因此&#xff0c;本…

java时间日期工具类_java日期处理工具类

java日期处理工具类import java.text.DecimalFormat;import java.text.ParsePosition;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import java.util.Locale;import java.util.Random;import java…

python运行结果闪退_Pyhton TestCase运行闪退与失败,原因不详。。。

把源码贴上来&#xff0c;希望某位大神可以指点迷津&#xff1a;"""Unit test for odbchelper.pyThis program is part of "Dive Into Python", a free Python book forexperienced programmers. Visit http://diveintopython.org/ for thelatest ver…

java.jsp.jdbc_Java-jsp使用JDBC访问数据库时显示乱码是怎么回事?

1.JSP页面编码你改成utf-8;2.servlet容器的编码格式你改成utf-8;以tomcat为例&#xff1a;找到你的安装目录tomcat下面 > conf > server.xml用记事本打开添加如下的代码&#xff1a;URIEncoding"utf-8"protocol"HTTP/1.1"port"8080"connec…

python实例讲解wxpythonhyh123_Python实例讲解 -- wxpython 基本的控件 (按钮)

使用按钮工作在wxPython 中有很多不同类型的按钮。这一节&#xff0c;我们将讨论文本按钮、位图按钮、开关按钮(toggle buttons )和通用(generic )按钮。如何生成一个按钮&#xff1f;在第一部分(part 1)中&#xff0c;我们已经说明了几个按钮的例子&#xff0c;所以这里我们只…

检测Java Web应用程序而无需修改其源代码

与其他系统进行交互时&#xff0c;大多数Java Web应用程序都使用标准Java接口。 使用接口javax.servlet.Servlet来实现基于HTTP的服务&#xff0c;例如网页或REST服务器。 使用JDBC接口java.sql.Statement和java.sql.Connection实现数据库交互。 这些标准几乎是通用的&#xff…

如何快速弄懂一个新模型_如何评估创业项目是否靠谱?一个新的模型 | 创创锦囊...

要判断一个创业项目是否靠谱&#xff0c;是否能拥有广阔的市场和巨大的增长潜力&#xff0c;不仅是投资人关心的话题&#xff0c;更是每一个创业者在创业过程中不断思考的问题。投资人关注大趋势、大机会&#xff0c;遵循自上而下的思维模型&#xff0c;在心仪的赛道上寻找合适…