mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-10 07:25:50 +01:00
(refs #96)Add build.xml which makes an executable war file.
This commit is contained in:
48
build.xml
Normal file
48
build.xml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<project name="example" default="rename" basedir=".">
|
||||||
|
|
||||||
|
<property name="boot.classes.dir" value="boot_classes"/>
|
||||||
|
<property name="target.dir" value="target"/>
|
||||||
|
<property name="scala.version" value="2.10"/>
|
||||||
|
<property name="gitbucket.version" value="0.0.1"/>
|
||||||
|
<property name="jetty.version" value="8.1.8.v20121106"/>
|
||||||
|
<property name="servlet.version" value="3.0.0.v201112011016"/>
|
||||||
|
|
||||||
|
<target name="clean">
|
||||||
|
<delete dir="${boot.classes.dir}"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="war" depends="clean">
|
||||||
|
<exec command="sbt.bat clean package"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="embed" depends="war">
|
||||||
|
<mkdir dir="${boot.classes.dir}"/>
|
||||||
|
<unzip dest="${boot.classes.dir}" src="${target.dir}/webapp/WEB-INF/lib/javax.servlet-${servlet.version}.jar" />
|
||||||
|
<unzip dest="${boot.classes.dir}" src="${target.dir}/webapp/WEB-INF/lib/jetty-continuation-${jetty.version}.jar" />
|
||||||
|
<unzip dest="${boot.classes.dir}" src="${target.dir}/webapp/WEB-INF/lib/jetty-http-${jetty.version}.jar" />
|
||||||
|
<unzip dest="${boot.classes.dir}" src="${target.dir}/webapp/WEB-INF/lib/jetty-io-${jetty.version}.jar" />
|
||||||
|
<unzip dest="${boot.classes.dir}" src="${target.dir}/webapp/WEB-INF/lib/jetty-security-${jetty.version}.jar" />
|
||||||
|
<unzip dest="${boot.classes.dir}" src="${target.dir}/webapp/WEB-INF/lib/jetty-server-${jetty.version}.jar" />
|
||||||
|
<unzip dest="${boot.classes.dir}" src="${target.dir}/webapp/WEB-INF/lib/jetty-servlet-${jetty.version}.jar" />
|
||||||
|
<unzip dest="${boot.classes.dir}" src="${target.dir}/webapp/WEB-INF/lib/jetty-util-${jetty.version}.jar" />
|
||||||
|
<unzip dest="${boot.classes.dir}" src="${target.dir}/webapp/WEB-INF/lib/jetty-webapp-${jetty.version}.jar" />
|
||||||
|
<unzip dest="${boot.classes.dir}" src="${target.dir}/webapp/WEB-INF/lib/jetty-xml-${jetty.version}.jar" />
|
||||||
|
|
||||||
|
<zip destfile="${target.dir}/scala-${scala.version}/gitbucket_${scala.version}-${gitbucket.version}.war"
|
||||||
|
basedir="${boot.classes.dir}"
|
||||||
|
update = "true"
|
||||||
|
includes="javax/**,org/**"/>
|
||||||
|
|
||||||
|
<zip destfile="${target.dir}/scala-${scala.version}/gitbucket_${scala.version}-${gitbucket.version}.war"
|
||||||
|
basedir="${target.dir}/scala-${scala.version}/classes"
|
||||||
|
update = "true"
|
||||||
|
includes="JettyLauncher.class"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="rename" depends="embed">
|
||||||
|
<rename src="${target.dir}/scala-${scala.version}/gitbucket_${scala.version}-${gitbucket.version}.war"
|
||||||
|
dest="${target.dir}/scala-${scala.version}/gitbucket.war"/>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
</project>
|
||||||
@@ -41,10 +41,11 @@ object MyBuild extends Build {
|
|||||||
"com.novell.ldap" % "jldap" % "2009-10-07",
|
"com.novell.ldap" % "jldap" % "2009-10-07",
|
||||||
"com.h2database" % "h2" % "1.3.171",
|
"com.h2database" % "h2" % "1.3.171",
|
||||||
"ch.qos.logback" % "logback-classic" % "1.0.6" % "runtime",
|
"ch.qos.logback" % "logback-classic" % "1.0.6" % "runtime",
|
||||||
"org.eclipse.jetty" % "jetty-webapp" % "8.1.8.v20121106" % "container",
|
"org.eclipse.jetty" % "jetty-webapp" % "8.1.8.v20121106" % "compile;container",
|
||||||
"org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container;provided;test" artifacts (Artifact("javax.servlet", "jar", "jar"))
|
"org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "compile;container;provided;test" artifacts (Artifact("javax.servlet", "jar", "jar"))
|
||||||
),
|
),
|
||||||
EclipseKeys.withSource := true
|
EclipseKeys.withSource := true,
|
||||||
|
packageOptions += Package.MainClass("JettyLauncher")
|
||||||
) ++ seq(Twirl.settings: _*)
|
) ++ seq(Twirl.settings: _*)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
24
src/main/java/JettyLauncher.java
Normal file
24
src/main/java/JettyLauncher.java
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import org.eclipse.jetty.server.Server;
|
||||||
|
import org.eclipse.jetty.webapp.WebAppContext;
|
||||||
|
|
||||||
|
import java.net.URL;
|
||||||
|
import java.security.ProtectionDomain;
|
||||||
|
|
||||||
|
public class JettyLauncher {
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
int port = System.getenv("PORT") != null ? Integer.parseInt(System.getenv("PORT")) : 8080;
|
||||||
|
Server server = new Server(port);
|
||||||
|
WebAppContext context = new WebAppContext();
|
||||||
|
ProtectionDomain domain = JettyLauncher.class.getProtectionDomain();
|
||||||
|
URL location = domain.getCodeSource().getLocation();
|
||||||
|
|
||||||
|
context.setContextPath("/");
|
||||||
|
context.setDescriptor(location.toExternalForm() + "/WEB-INF/web.xml");
|
||||||
|
context.setServer(server);
|
||||||
|
context.setWar(location.toExternalForm());
|
||||||
|
|
||||||
|
server.setHandler(context);
|
||||||
|
server.start();
|
||||||
|
server.join();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user