mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-09 15:05: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.h2database" % "h2" % "1.3.171",
|
||||
"ch.qos.logback" % "logback-classic" % "1.0.6" % "runtime",
|
||||
"org.eclipse.jetty" % "jetty-webapp" % "8.1.8.v20121106" % "container",
|
||||
"org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container;provided;test" artifacts (Artifact("javax.servlet", "jar", "jar"))
|
||||
"org.eclipse.jetty" % "jetty-webapp" % "8.1.8.v20121106" % "compile;container",
|
||||
"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: _*)
|
||||
)
|
||||
}
|
||||
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