blob: 3836dd5c351e3f492c1387c52da311360cc52f82 [file] [log] [blame]
<!--
Copyright 2016 Huawei Technologies Co., Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.openo.gso.gui</groupId>
<artifactId>gso-gui</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>servicegateway</artifactId>
<name>servicegateway</name>
<packaging>pom</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<modules>
<module>service</module>
<module>deployment</module>
</modules>
<profiles>
<profile>
<activation>
<file>
<exists>src/main/release/pub</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/deploydependencis</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<includeScope>compile</includeScope>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>make new jar</id>
<phase>package</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
private String getWebContextFromManifest(File warFile) {
String context = null;
java.util.jar.JarFile jarFile = null;
try {
jarFile = new java.util.jar.JarFile(warFile);
context =
jarFile.getManifest().getMainAttributes().getValue("WebContext-Name");
context = context == null ? "ROOT" : context;
context = context.replace("\", "/");
context = context.replaceAll("[/]{2,}", "/");
context = context.endsWith("/") ? context.substring(0, context.length() - 1) : context;
context = context.startsWith("/") ? context.substring(1, context.length()) : context;
context = context.replaceAll("/", "#");
return context;
} catch (Exception e) {
System.out.println("-------------------context eror: ",e);
context = "ROOT";
} finally {
if (jarFile != null) {
jarFile.close();
}
}
System.out.println("-------------------context is: " + context);
return context;
}
System.out.println("------------------------------1")
List contexts=new ArrayList();
deploydependencisdir = "${project.build.directory}/deploydependencis";
unzipdir =
"${project.build.directory}/deployunzip";
outputdir =
"${project.build.directory}/deployoutput";
resourcesdir =
"${project.basedir}/src/main/release";
jarsdir = "${unzipdir}/lib";
toolpath =
"${project.build.directory}/deployoutputjars";
System.out.println("------------------------------2")
ant = new AntBuilder()
ant.delete(dir: "${unzipdir}")
ant.mkdir(dir: "${unzipdir}")
ant.mkdir(dir:
toolpath)
ant.delete(dir: "${outputdir}")
ant.mkdir(dir: "${outputdir}")
ant.delete(dir: "${jarsdir}")
ant.mkdir(dir: "${jarsdir}")
outputFileName =
"${project.name}"
System.out.println("------------------------------3")
if(new
File("${deploydependencisdir}").exists()){
for (File file : new File("${deploydependencisdir}").listFiles())
{
String filePath = file.getAbsolutePath();
fileName = file.getName();
if (fileName.endsWith(".war")) {
context = getWebContextFromManifest(file)
ant.mkdir(dir: "${unzipdir}/webapps/" + context)
ant.unzip(src: filePath, dest: "${unzipdir}/webapps/" + context)
ant.copy(todir: toolpath) {
fileset(dir: "${unzipdir}/webapps/" + context + "/WEB-INF/lib") {
include(name: "*.jar")
}
}
}
}
contexts.add(toolpath)
ant.copy(todir: toolpath) {
fileset(dir: "${deploydependencisdir}") {
include(name: "*.jar")
}
}
}
System.out.println("------------------------------4")
ant.copy(todir: toolpath) {
fileset(dir: "${project.build.directory}") {
include(name: "*.jar")
}
}
ant.copy(todir: "${unzipdir}") {
fileset(dir: "${resourcesdir}") {
include(name: "**")
}
}
/* compile python .py files. */
System.out.println("------------------------------5------------------")
pythonFile = "${project.basedir}/src/main/python";
if(new
File(pythonFile).exists()) {
try {
ant.exec(dir: "${project.basedir}/src/main/python", executable: "python") {
arg(value: "-m")
arg(value: "compileall")
arg(value: ".")
}
ant.copy(todir: "${unzipdir}") {
fileset(dir: "${project.basedir}/src/main/python") {
include(name: "**/*.*")
exclude(name: "**/*.py")
}
}
} catch (Exception eee) {
System.out.println("----------------&gt;&gt;&gt;"+eee.toString())
}
}
/* copy all dependencies to $APP_ROOT/lib. */
System.out.println("------------------------------6------------------")
for(String temPath : contexts)
{
if(new File(temPath).exists())
{
try {
for (File file : new File(temPath).listFiles()) {
fileName = file.getName();
if (fileName.endsWith(".jar")) {
ant.copy(file: file.getAbsolutePath(), todir: "${jarsdir}")
}
}
} catch (Exception e) {
e.printStackTrace()
}
}
}
/* deploy the upzip file to ${outputdir}/${outputFileName} */
System.out.println("------------------------------7------------------")
outputFileName =
outputFileName.endsWith("Deployment")?outputFileName:outputFileName+"Deployment";
outputFileName = outputFileName.substring(0, outputFileName.length() -
"Deployment".length());
outputFileName = outputFileName +
"-${project.version}.zip";
outputFileName = outputFileName.replace("-SNAPSHOT",
"." + new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(
new Date()));
ant.delete(dir: "${unzipdir}/webapps/ROOT/WEB-INF/lib");
ant.mkdir(dir:
"${unzipdir}/webapps/ROOT/WEB-INF/lib");
ant.copy(todir:
"${unzipdir}/webapps/ROOT/WEB-INF/lib") {
fileset(dir: "${unzipdir}/lib") {
include(name: "org.openo.common-services.common-utilities.commonlib.db-*.jar")
include(name: "org.openo.common-services.common-utilities.commonlib.cbb-*.jar")
}
}
ant.delete() {
fileset(dir: "${unzipdir}/lib") {
include(name: "org.openo.common-services.common-utilities.commonlib.db-*.jar")
include(name: "org.openo.common-services.common-utilities.commonlib.cbb-*.jar")
}
}
/* generate dependencies.list in $APP_ROOT/lib. Requirement for install disk size. */
System.out.println("------------------------------8------------------")
dependenciesPath="${unzipdir}/lib";
try {
def writer = new File(dependenciesPath+"/dependencies.list").newWriter('UTF-8')
for (String fileName : new File(dependenciesPath).list()) {
if (fileName.endsWith(".jar")) {
writer.writeLine(fileName);
}
}
writer.close()
} catch (Exception e) {
e.printStackTrace()
}
/* make the archive. */
System.out.println("------------------------------9------------------")
ant.zip(destfile:
"${outputdir}/${outputFileName}") {
fileset(dir: "${unzipdir}") {
exclude(name: "**/.gitignore")
}
}
System.out.println("------------------------------done")
</source>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>