glassfish 4配置_自己构建GlassFish 4.0快照
glassfish 4配置
這篇文章是關(guān)于自己發(fā)布GlassFish 4.0快照的,其中包括一些黑客。 我找到了GlassFish FullBuild的官方說(shuō)明,然后決定自己構(gòu)建服務(wù)器。 有時(shí),您可能不想等待團(tuán)隊(duì)升級(jí)GlassFish構(gòu)建文件。 在本條目中,我將Artifactory稱為私有Maven存儲(chǔ)庫(kù),當(dāng)然,您也可以使用其他東西。 從Subversion自己簽出GlassFish 4.0的源代碼:
您需要修改工作站的Maven設(shè)置文件以排除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>在編譯整個(gè)GlassFish代碼之前,我們需要破解POM文件,以便它們將工件安裝到我們的專用Artifactory服務(wù)器中,而不是Maven Central中。 將以下節(jié)添加到分發(fā)中的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>在上面的節(jié)中,將ACME的定義編輯到您私有的Artifactory服務(wù)器,然后將其復(fù)制以下POM文件:
- main/pom.xml
- main/appserver/javaee-api/pom.xml
- main/appserver/pom.xml
- main/nuclues/pom.xml
這是一個(gè)討厭的黑客,因?yàn)槲也幌矚g您無(wú)法設(shè)置從配置更改部署服務(wù)器和憑據(jù)。 其他源代碼允許通過(guò)Maven配置文件甚至屬性文件配置部署服務(wù)器。 確保您的Maven設(shè)置適用于Artifactory部署,并且我們還設(shè)置了Maven構(gòu)建過(guò)程。 設(shè)置環(huán)境變量MAVEN_OPTS,以使Maven有足夠的內(nèi)存,并且永久生成足夠高,以避免編譯期間出現(xiàn)內(nèi)存不足異常。
MAVEN_OPTS=-Xmx1024m -Xms256m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled如果您有16GB RAM工作站,為什么不將其最大化以編譯整個(gè)GlassFish? 垃圾收集算法更改為并發(fā)標(biāo)記和清除算法,并且我們還將啟用的類卸載設(shè)置為啟用。 您準(zhǔn)備好進(jìn)行編譯,輸入以下命令:
cd glassfish-main svn update mvn clean mvn install -DskipTests=true在體面的Intel Core i5 / i7機(jī)器(2012)上,讓自己約20分鐘成為熱飲料和小吃。 休息一下。 注意,我們?cè)谶@里避免運(yùn)行單元測(cè)試,而跳過(guò)了測(cè)試,因?yàn)槲覀冎幌肟焖俚卦趥}(cāng)庫(kù)中發(fā)布工作版本,但這并不是說(shuō)測(cè)試很糟糕。 成功編譯所有模塊之后,現(xiàn)在您可以部署到私有Maven存儲(chǔ)庫(kù)。 如果遵循先前的說(shuō)明(關(guān)于將節(jié)復(fù)制到單個(gè)POM文件),則可以從根目錄執(zhí)行此命令。
cd glassfish-main mvn deploy -DskipTests=true將工件部署到Artifactory之后,檢查快照4.0版本的存儲(chǔ)庫(kù),它們都應(yīng)該存在。 現(xiàn)在下降到Java EE項(xiàng)目文件夾。 破解POM文件glassfish-main/appserver/javaee-api/javax.javaee-api/pom.xml 。 它在build部分中缺少maven源插件,因此,默認(rèn)情況下,它不會(huì)生成源JAR,這對(duì)于查看新的JavaEE 7 API很有用! 查找XPath project/build/plugins ,并將以下節(jié)附加到該P(yáng)OM。
<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>執(zhí)行以下命令行,以部署Java EE api工件
cd glassfish-main/appserver/javaee mvn deploy -DskipTests=true由于某些原因,主要執(zhí)行不會(huì)自動(dòng)安裝javax.javaee-api工件。 執(zhí)行此行將為三個(gè)基礎(chǔ)模塊生成JAR和SOURCES JAR: javax.javaee-api , javax.javaee-web-api和javax.javaee-endorsed-api 。 轉(zhuǎn)至Artifactory,查看工件已全部部署。 然后,您可以像這樣編寫(xiě)Gradle構(gòu)建文件:
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' } 特別是,請(qǐng)注意,構(gòu)建版本被注釋為7.0-bpeter-private 。 我尚未解決的難題的最后一部分是如何配置build.id Maven屬性,以便可以自定義內(nèi)部版本號(hào)。 仍然是一個(gè)謎。 如果您碰巧知道答案,請(qǐng)給我響鈴。 干杯!
參考:在Peter Pilgrim的博客博客中,我們的JCG合作伙伴 Peter Pilgrim 自己構(gòu)建了GlassFish 4.0快照 。
翻譯自: https://www.javacodegeeks.com/2013/03/build-glassfish-4-0-snapshots-yourself.html
glassfish 4配置
總結(jié)
以上是生活随笔為你收集整理的glassfish 4配置_自己构建GlassFish 4.0快照的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 历时近十年,川青铁路青白江至镇江关段今日
- 下一篇: 2023中国民营企业研发十强公布:百度、